Django内置了强大的ORM系统,支持多种数据库后端。正确的数据库配置对应用性能和稳定性至关重要。
Django官方支持以下数据库:
默认数据库,适合开发和中小型项目
内置支持流行的开源关系型数据库
需要驱动功能强大的开源关系型数据库
需要驱动Django默认使用SQLite数据库,无需额外配置即可使用:
Django支持多个MySQL驱动:
| 驱动 | 安装命令 | 特点 |
|---|---|---|
| mysqlclient | pip install mysqlclient |
官方推荐,性能最好 |
| PyMySQL | pip install PyMySQL |
纯Python实现,兼容性好 |
| MySQL Connector/Python | pip install mysql-connector-python |
Oracle官方驱动 |
mysqlclient,它基于C扩展,性能最佳。
修改数据库配置:
在MySQL中创建数据库:
创建用户并授权:
安装psycopg2驱动:
或者安装完整版本(需要编译工具):
psycopg2-binary,生产环境建议使用 psycopg2。
修改数据库配置:
在PostgreSQL中创建数据库:
安装cx_Oracle驱动:
还需要安装Oracle Instant Client:
修改数据库配置:
在生产环境中,建议使用环境变量来管理敏感信息:
配置完成后,可以通过以下方式测试数据库连接:
迁移命令会自动测试数据库连接:
如果迁移成功运行,说明数据库连接正常。
创建数据库路由类:
在settings.py中配置路由:
可能原因: 数据库连接失败
解决方案:
可能原因: 数据库或表不存在
解决方案:
CREATE DATABASE database_name;python manage.py migrate症状: 中文字符显示为乱码
解决方案:
'charset': 'utf8mb4''client_encoding': 'UTF8'症状: 长时间不操作后连接断开
解决方案:
'CONN_MAX_AGE'控制连接存活时间