当前位置: 首页 > news >正文

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 项目】
在这里插入图片描述

http://www.lryc.cn/news/192387.html

相关文章:

  • Java设计模式:Callback
  • 年底旺季,Shopee、Lazada如何通过测评补单技术打造产品权重收割流量
  • CentOS 7 安装 MySQL8.0
  • C# 往多线程传递安全参数的方法
  • Java之SPI
  • 【数据结构】算法的空间复杂度
  • 恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题
  • Android:事件分发机制(二)
  • vue2时间处理插件——dayjs
  • 软考 系统架构设计师系列知识点之软件质量属性(6)
  • Python6-wxPython库
  • 使用OpenSSL的反弹shell
  • 竞赛选题 深度学习OCR中文识别 - opencv python
  • ezEIP信息泄露
  • 02.机器学习原理(复习)
  • 电源集成INN3270C-H215-TL、INN3278C-H114-TL、INN3278C-H215-TL简化了反激式电源转换器的设计和制造。
  • UE4和C++ 开发--HUD类
  • 使用js怎么设置视频背景
  • Gin,Gorm实现Web计算器
  • 11-网络篇-DNS步骤
  • 设计师都应该知道的事:极简主义家具该怎么去用
  • 设计模式02———建造者模式 c#
  • 2023最新接口自动化测试面试题
  • GaN器件的工作原理
  • 点云从入门到精通技术详解100篇-海量三维点云的空间索引及可视化应用(续)
  • androidx和v4包资源冲突解决方法
  • 【发烧期间随笔】第一次游戏开发经历的总结与反思
  • CCombBox组合框
  • 机器学习-有监督学习-神经网络
  • React之组件通信