当前位置:首页 > 行业动态 > 正文

Django如何正确配置连接MySQL数据库?

Django连接MySQL的配置方法包括直接在settings.py文件中添加数据库配置信息,以及将 数据库配置信息存到一个文件中并在settings.py中引入。安装mysqlclient驱动是推荐的方式,也可使用py mysql但需额外配置。

Django 连接 MySQL 的配置方法主要有以下几种:

Django如何正确配置连接MySQL数据库?  第1张

1、直接在 settings.py 文件中配置

安装 mysqlclient:执行命令pip install mysqlclient 安装该库。

创建数据库:使用命令行工具或可视化工具如 Navicat Premium 等创建数据库,例如创建名为mydatabase 的数据库,并设置字符集为 utf8。

修改 settings.py:在项目的settings.py 文件中配置 MySQL 连接参数,如下所示:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'mydatabase',
              'USER': 'mydatabaseuser',
              'PASSWORD': 'mypassword',
              'HOST': '127.0.0.1',
              'PORT': '3306',
          }
      }

ENGINE 指定数据库引擎为 MySQL;NAME 是数据库名称;USER 是数据库登录用户名;PASSWORD 是对应的密码;HOST 一般为本地地址127.0.0.1;PORT 是 MySQL 默认端口3306。

2、通过配置文件引用

创建数据库配置文件:新建一个名为my.cnf(名字可自定义)的配置文件,内容如下:

      [client]
      database = mydatabase
      user = mydatabaseuser
      password = mypassword
      host = 127.0.0.1
      port = 3306
      default-character-set = utf8

在 settings.py 中引入配置文件:在settings.py 文件中配置如下:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'OPTIONS': {
                  'read_default_file': 'path/to/my.cnf',  # 这里填写 my.cnf 文件的实际路径
              },
          }
      }

3、在生产环境中使用 pymysql:在生产环境中,需要安装pymysql 并在settings.py 文件所在包中的__init__.py 中导入pymysql 并进行安装。

以下是两个常见问题及解答:

1、问题:如果更改了 MySQL 的默认端口,如何在 Django 中配置?

解答:在settings.py 文件的DATABASES 配置中,将PORT 参数的值修改为新的端口号即可,如果将 MySQL 的端口改为3307,则在settings.py 中配置如下:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'mydatabase',
              'USER': 'mydatabaseuser',
              'PASSWORD': 'mypassword',
              'HOST': '127.0.0.1',
              'PORT': '3307',  # 修改后的端口号
          }
      }

2、问题:如何在 Django 中使用多个数据库?

解答:可以在settings.py 文件中配置多个数据库,除了默认的数据库外,再配置一个名为secondary 的数据库:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'mydatabase',
              'USER': 'mydatabaseuser',
              'PASSWORD': 'mypassword',
              'HOST': '127.0.0.1',
              'PORT': '3306',
          },
          'secondary': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'anotherdatabase',
              'USER': 'anotheruser',
              'PASSWORD': 'anotherpassword',
              'HOST': '127.0.0.1',
              'PORT': '3306',
          }
      }

然后在代码中可以通过using 参数来指定使用哪个数据库进行操作,

      from django.db import connections
      cursor = connections['secondary'].cursor()

小编有话说:Django 连接 MySQL 的配置方法并不复杂,但需要仔细按照步骤进行操作,确保各个参数的正确性,在实际应用中,建议根据项目的具体需求和环境选择合适的配置方式,并注意数据库的安全性和性能优化。

0