Django连接MySQL数据库及建表操作详解

拾柒
拾柒
发布时间:2026-10-14| 5人浏览过
原创

本文详细介绍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程序设计有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。