Django MySQL配置

本文介绍了如何在Django中配置MySQL数据库,并详细说明了makemigrations与migrate命令的作用及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Django默认支持 Mysql, Pgsql, oracle, sqllite。使用SqlLite时什么都不用安装,django已经自带客户端lib。数据库的Django官方文档。

https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-notes

   以使用MySql为例子,首先需要在settings.py的Databases里设置MySql的登录信息。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_test',  #数据库名字
        'USER': 'xx',          #mysql 登录名字
        'PASSWORD': '123456',  #mysql 登录密码
        'HOST': '192.168.1.21',
        'PORT': '3306',
    }
}

    也可以采用OPTIONS的方式,这样就可以避免修改settings.py了。

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}


# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8

     设置完成之后,你的django项目就会使用Mysql数据库了。

运行命令:python manage.py makemigrations  会在migrations目录下产生修改数据库的py文件,文件次序是00001,,0002一次类推。

python manage.py sqlmigrate app_name  migration_file_name  可以查看0001等文件生成的SQL语句。


python manage.py migrate 这个命令会最终操作你的数据库,所以运行migrate之前,数据库是不会有任何改变的。之所以有makemigrations 和migrate两个命令来完成修改数据库,主要是为了发布到生产环境方便。在开发环境中通过makemigrations生成修改数据库的py文件,再到生产环境中通过migrate来修改生产环境的数据库。


### Django配置 MySQL 数据库 #### 安装必要的依赖包 为了使 Django 支持 MySQL 数据库,在 Python 环境中需先安装 `mysqlclient` 或者 `PyMySQL` 库。推荐使用 `pip install mysqlclient` 来完成这一操作,因为它提供了更好的兼容性和性能[^2]。 #### 修改 settings.py 文件中的 DATABASES 设置 打开项目的 `settings.py` 文件并找到 `DATABASES` 字典部分。将默认的 SQLite 配置更改为如下所示: ```python import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', # 替换成实际创建好的数据库名称 'USER': 'root', # 使用具有适当权限的用户名 'PASSWORD': 'password', # 对应用户的密码 'HOST': 'localhost', # 如果是在本地运行则通常是'localhost' 'PORT': '3306', # 默认端口为3306, 若有更改请填写相应端口号 } } ``` 注意替换上述代码片段里的 `'your_database_name'`, `'root'`, 和 `'password'` 成真实的值来匹配个人环境设置[^1]。 #### 创建 MySQL 数据库 登录到 MySQL 控制台或者通过其他管理工具新建一个用于存储应用程序数据的新数据库。可以执行 SQL 命令如 `CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;` 来实现这一点[^4]。 #### 加载时区表 (可选但建议) 如果遇到与时间有关的操作出现问题,则可能是由于缺少时区信息引起的。可以通过命令行进入 MySQL 并输入 `mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql` 将系统的时区文件导入至 MySQL 的 `mysql` 表中[^3]。 #### 执行迁移指令同步模型结构 最后一步就是让 Django 把定义的数据模型应用到新建立起来的 MySQL 数据库里去。这可通过终端依次运行两条命令达成目的: - `python manage.py makemigrations`: 自动检测已有的模型变化情况; - `python manage.py migrate`: 实际地把这些变更反映到了目标数据库上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值