Django连接MySQL数据库及建表操作详解
本文详细介绍Django项目连接MySQL数据库的配置步骤,包括Settings.py数据库参数设置、Pymysql驱动安装以及应用创建。重点讲解如何通过models.py定义模型类,利用ORM机制自动生成数据库表结构,并演示makemigrations与migrate命令的使用。此外,还包含PyCharm数据库可视化工具的操作指南及常见问题排查,帮助开发者快速掌握Django与MySQL的集成方法。
Django连接MySQL数据库配置指南
本文详细解析Django连接MySQL数据库及创建数据表的具体操作流程,旨在为读者提供清晰的实践参考。
初始化数据库驱动配置
在Django项目中,若需连接MySQL数据库,首先需要在与项目名称相同的目录下的__init__.py文件中添加特定配置代码。
import pymysql
pymysql.install_as_MySQLdb()
数据库连接参数设置
接下来,需在项目的settIngs.py文件中找到DATABASES配置项,并按照MySQL的要求进行相应设置。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 's22', #连接的库名,这个要事先存在
'HOST':"127.0.0.1",
'PORT':3306,
'USER':"root",
'PASSWORD':"123", #这里要用引号
}
}
静态文件路径调整
此外,还需调整静态文件的路径配置,以确保前端资源能正确加载。
#静态文件位置比如用来存放 bootstrap样式,jquery-3.3.1.min.js
STATIC_URL = '/static/'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,"static"),
os.path.join(BASE_DIR,"static99"),
]
创建Django应用
随后,在PyCharm的Terminal终端中创建一个新的应用,命名为app01。
假设当前项目名称为test1,在此名称下执行上述应用创建命令。
G:\study\day18\test1> python manage.py startapp app01
为使Django识别新创建的应用,需在settIngs.py文件中将其加入INSTALLED_APPS列表末尾。注意:若在创建项目时已指定应用名称,系统会自动将其加入该列表。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config', #你在命令行创建app时要注意添加
]
ORM模型定义与建表操作
在app01应用目录下的models.py文件中,编写用于定义数据表结构的类。
Django ORM的操作对应关系如下:
ORM 对象关系映射 类 表 对象 记录 属性 字段
在app01应用的modles.py文件中,编写具体的类定义代码以创建数据模型。
from django.db import models
# Create your models here.
class Book(models.Model):
# 定义一个自增的id主键
id = models.AutoField(primary_key=True)
# 定义一个最大长度为32的varchar字段
title = models.CharField(max_length=32)
在Terminal终端中依次执行以下两条命令以生成并应用迁移文件。
python manage.py makemigrations #检测app/models.py文件的改动
python manage.py migrate #把上面的改动翻译成sql语句,然后去数据库中执行
执行完毕后,登录MySQL数据库查看生成的表结构及结果。
mysql> show tables;
+----------------------------+
| Tables_in_s22 |
+----------------------------+
| app01_book |
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+----------------------------+
11 rows in set (0.00 sec)
若需删除app01_book表,只需注释或删除modles.py中相关的类定义,随后执行迁移命令。
models.py
#class Book(models.Model):
# # 定义一个自增的id主键
# id = models.AutoField(primary_key=True)
# # 定义一个最大长度为32的varchar字段
# title = models.CharField(max_length=32)
接着再次执行迁移命令,使数据库结构与模型定义保持一致。
python manage.py makemigrations
python manage.py migrate
app01的migrations目录下存放的是变更历史记录,严禁直接登录数据库进行手动操作,否则会导致迁移记录混乱。

PyCharm数据库可视化管理
若希望在PyCharm中直观地管理数据库,可参考以下界面操作。

1 点击侧栏的 database 2 点击+ 选择mysql 3 点击download下载相关的驱动 4 库 5 用户名 6 密码 ---》点击test connection测试数据库的连通性
具体的数据库可视化管理操作界面如下所示。

说明: 1 点击要操作的表 2 点击+ 表示要加入记录,- 表示删除 3 点击 ⬆同步道数据库 4 刷新,查看新的记录
操作总结与前置准备
总结Django操作MySQL数据库前的准备工作。
1 用sql语句建个数据库,也就是命令登陆MySQL 使用create s22
2 告诉django去哪里连接数据库 在settIngs.py中设置
3 告诉django使用pymysql连接MySQL数据库 project/__init__.py
4 在app/models.py文件中,根据语法,创建类
5执行两个命令:makemigrations migrate
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









