文章目录
- 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, HttpResponsefrom 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 pathfrom app01 import viewsurlpatterns = [# 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:\Users\Administrator>mysql -u root -pEnter password: *****mysql> show variables like '%ssl%';
【第二步:修改 my.ini】
【第三步:重启 mysql 服务】
【第四步:重新执行命令】
【第五步:启动 DJango 项目】