1、项目同名文件夹下的 init.py 文件

  • MySQLdb 模块是Python2 里面操作MySQL数据库的模块,和Python3 pymysql用法一样;
  • Django底层是用的 MySQLdb 模块
  • Python3中没有 MySQLdb 模块,可以给 pymysql 起个别名
  • pymysql.install_as_MySQLdb() 是给 pymysql 重命名了,实际调用了pymysql
    • 可以查看install_as_MySQLdb()源码
    • 源码sys.modules[“MySQLdb”] = sys.modules[“_mysql”] = sys.modules[“pymysql”] ```python import pymysql

pymysql.install_as_MySQLdb() # 给 pymysql 起别名为 MySQLdb

  1. <a name="OhQks"></a>
  2. # 2、项目同名文件夹下的 settings.py 文件
  3. ```python
  4. # 用于指定数据库的配置信息
  5. DATABASES = {
  6. # 'default': {
  7. # 'ENGINE': 'django.db.backends.sqlite3', # 指定数据库存储引擎
  8. # 'NAME': BASE_DIR / 'db.sqlite3', # 指定要连接的数据库名称
  9. # },
  10. 'default': { # 指定MySQL数据库
  11. 'ENGINE': 'django.db.backends.mysql',
  12. 'NAME': "分库", # 数据库
  13. "USER": "数据库账号", # 账号
  14. "PASSWORD": "数据库密码", # 密码
  15. "PORT": 3306, # 端口号
  16. "HOST": "数据库ip地址" # ip
  17. },
  18. # 可以配置多个数据库,操作数据表模型的时候可以指定数据库
  19. 'uat_environment': { # 指定MySQL数据库
  20. 'ENGINE': 'django.db.backends.mysql',
  21. 'NAME': "uat_db", # 数据库
  22. "USER": "数据库账号", # 账号
  23. "PASSWORD": "数据库密码", # 密码
  24. "PORT": 3306, # 端口号
  25. "HOST": "数据库ip地址" # ip
  26. }
  27. }

2.1、使用多个数据库

当进行数据查询时,默认使用的是default定义的数据库;
当我们想用名称为uat_db 的数据库时,
可以使用 using 来指定数据库为 uat_environment(即使用 uat_db 数据库)

student1=models.Student.objects.using(“uat_environment”).filter()

2.2、项目中途切换数据库

  1. 注释掉 settings.py 文件中 原来的数据库配置
  2. settings.py 文件中 添加 新的数据库配置
  3. python manage.py migrate # 同步到数据库(数据库迁移) 执行该命令

3、参考博客

CSDN:基于django框架web项目实战开发三 django连接mysql数据库
https://blog.csdn.net/weixin_42914677/article/details/89743027
博客园:Python3之Django连接mysql数据库