文章目录
- 1 概述
-
- 1.1 Mysql 下载和安装
- 1.2 菜单目录
- 2 ORM 框架
-
- 2.1 连接 Mysql 模块:mysqlclient
- 2.2 创建数据库
- 2.3 连接 Mysql
- 2.4 创建表
- 2.5 增删改查
- 3 扩展
-
- 3.1 ERROR:2026, ‘SSL connection error: unknown error number’
1 概述
1.1 Mysql 下载和安装
- 博客:https://blog.csdn.net/qq_34745941/article/details/122549376
- 若已安装,请忽略。
1.2 菜单目录
- 主要使用的文件如图
2 ORM 框架
2.1 连接 Mysql 模块:mysqlclient
> pip install mysqlclient
- 若 pip 安装失败,可进入 Python 官方库中下载 whl 文件,操作可参考:
- 博客:https://blog.csdn.net/qq_34745941/article/details/106341898
2.2 创建数据库
# 创建数据库
> create database Demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
>
> # 展示数据库
> show databases;
2.3 连接 Mysql
在 settings.py 中,配置 Mysql 的连接串
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 不做修改
'NAME': 'demo', # 数据库名
'USER': 'root', # 用户名
'PASSWORD': '12345', # 密码
'HOST': '127.0.0.1', # 主机
'PORT': '3306', # 端口号(默认)
}
}
扩展:
Django 也支持其它数据库:官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/databases/
2.4 创建表
注意:
① 该类可重复执行
② 若类中的字段存在变更,则数据库表中的字段也同步变更
③ 若该类删除,则数据库中的表也同步删除
settings.py 中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config' # 注册项目
]
models.py 中:
from django.db import models
# 参数 models.Model 固定
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
终端中依次执行命令:数据库迁移,同步表结构!
> python manage.py makemigrations
> python manage.py migrate
可选,创建管理员
python manage.py createsuperuser
查询表:
mysql> use demo;
mysql> desc app01_userinfo;
2.5 增删改查
views.py:
from django.shortcuts import render, HttpResponse
from app01.models import UserInfo
# Create your views here.
def orm(request):
# 1.添加数据
UserInfo.objects.create(name="张三", password=123, age=18)
UserInfo.objects.create(name="李四", password=456, age=20)
UserInfo.objects.create(name="王五", password=789, age=22)
# 2.删除数据
UserInfo.objects.filter(id=3).delete() # 删除单条数据
# UserInfo.objects.all().delete() # 删除全部数据
# 3.获取数据
data_list = UserInfo.objects.all() # return QuerySet 类型数据
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
row_obj = UserInfo.objects.filter(id=1).first()
print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
# 4.更新数据
UserInfo.objects.filter(id=1).update(age=30)
return HttpResponse("成功")
urls.py:
from django.urls import path
from app01 import views
urlpatterns = [
# path('admin/', admin.site.urls),
# ORM 测试
path('orm/', views.orm)
]
3 扩展
3.1 ERROR:2026, ‘SSL connection error: unknown error number’
报错截图:
- 原因:较高版本的 mysql 的 ssl 是默认开启的
- 解决:关闭 ssl,同下 5 个步骤
【第一步:登录 mysql,查看 ssl 开启情况】
C:UsersAdministrator>mysql -u root -p
Enter password: *****
mysql> show variables like '%ssl%';
【第二步:修改 my.ini】
【第三步:重启 mysql 服务】
【第四步:重新执行命令】
【第五步:启动 DJango 项目】