本文目录
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django 是一个开放源代码的 Web 应用框架,由 Python 写成。---- 《菜鸟教程》
如何在
Django
中连接并使用现有的
MySQL
数据库 ?
如何在
Django
中对
MySQL
数据库的数据进行增删改查 ?
本文基于 Windows 系统下的 Python 环境进行演示,编辑器使用的是 PyCharm 社区版。
一、查看是否安装 PyMySQL 驱动
- 方法一:使用命令行窗口输入
pip list
命令查看。 - 方法二:使用 PyCharm 编辑器查看。依次点击【File】-【Settings】,打开设置界面。找到【Project:
此处显示你的项目目录名称
】,展开后找到【Python Interpreter】。
二、安装 PyMySQL 驱动(若没有此驱动)
- 方法一:使用命令行窗口输入
pip install pymysql
命令安装。 - 方法二:使用 PyCharm 编辑器安装。这里和查看时的方法二相同,打开界面。 点击 “+” 打开安装界面,搜索驱动并安装即可。
三、配置数据库连接
在
Django
项目中找到配置文件:
settings.py
,它通常位于与项目根目录同名的目录下。
找到
DATABASES
配置项,修改其中的数据库配置参数。
DATABASES ={'default':{# 注释掉原来的 sqlite3 数据库配置# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': BASE_DIR / 'db.sqlite3',# 新增 MySQL 数据库的配置'ENGINE':'django.db.backends.mysql',# 数据库引擎'NAME':'py_office_system',# 数据库名称'HOST':'127.0.0.1',# 数据库地址,本机 ip 地址 127.0.0.1'PORT':3306,# 端口'USER':'root',# 数据库用户名'PASSWORD':'root',# 数据库密码}}
在与
settings.py
同级目录下的
__init__.py
中加入如下配置:
import pymysql
pymysql.install_as_MySQLdb()
意思为使用
PyMySQL
模块连接
MySQL
数据库。
四、为数据表创建模型
模型,也就是 ORM 。
ORM(Object Realtional Mapping)即对象关系映射,允许你使用类和对象对数据库进行操作。
在数据库中,我们通常使用 SQL 语句对数据进行操作,但在程序开发中,数据库中的表和字段和程序中的实体类之间是没有关联的,ORM 就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。
(图片来自菜鸟教程 侵删)
在
Django
中可以使用命令为数据表创建对应的 ORM 模型,可以一次性将所有的表都生成出对应的模型,也可以只单独生成其中一张数据表的模型。
- 生成所有表
python manage.py inspectdb > models.py
此命令会将所有的数据表都生成对应的 ORM 模型代码,并保存到models.py
文件中。 - 生成单张表
python manage.py inspectdb 数据表名
此命令会将指定的数据表生成出对应的 ORM 模型代码,并在命令行工具中输出。 这时将生成的代码复制到models.py
文件中即可使用。
五、数据操作
有了
models.py
文件并且生成了数据表的模型,就可以在视图函数文件中进行数据的操作了。
以下展示了管理员角色表的模型代码:
from django.db import models
# Create your models here.# 管理员角色表模型classAdminRole(models.Model):
role_id = models.AutoField(primary_key=True)
role_name = models.CharField(max_length=20)
role_desc = models.CharField(max_length=50)
create_time = models.PositiveIntegerField()classMeta:# 这里要改成 True 才可以操作数据库数据
managed =True
db_table ='admin_role'
首先在视图函数文件中引入模型文件:
from myadmin.models import AdminRole
- 数据的查询
AdminRole.objects.all()
- 数据的添加
AdminRole.objects.create(role_name ='角色名称', role_desc ='角色描述', create_time ='创建时间')
- 数据的修改
Admin.objects.filter(role_id =1).update(role_name ='新角色名称', role_desc ='新角色描述')
- 数据的删除
Admin.objects.filter(role_id =1).delete()
完整演示代码:
from myadmin.models import AdminRole
# 查询数据(所有)
AdminRole.objects.all()# 添加数据
AdminRole.objects.create(role_name ='角色名称', role_desc ='角色描述', create_time ='创建时间')# 修改数据
Admin.objects.filter(role_id =1).update(role_name ='新角色名称', role_desc ='新角色描述')# 删除数据
Admin.objects.filter(role_id =1).delete()
这里仅演示了基本的数据操作,重点是如何连接 MySQL 数据库和创建 ORM 模型,至于更多数据的操作方法,可以自己进行学习。
六、其它
菜鸟教程:Django 教程 >>>
菜鸟教程:Django ORM - 单表实例 >>>
Django 4.0 官方文档 >>>
PyCharm 编辑器下载 >>>
版权归原作者 相逢不晚何必匆匆 所有, 如有侵权,请联系我们删除。