9.5 Connector/Python Django 后端

Connector/Python 包含一个 mysql.connector.django 模块,它为 MySQL 提供了一个 Django 后端。此后端支持从 MySQL 5.6 开始发现的新功能,例如对时间数据类型的小数秒支持。

Django 配置

Django 使用一个名为 settings.py 的配置文件,其中包含一个名为 DATABASES 的变量(参见 https://docs.django.ac.cn/en/1.5/ref/settings/#std:setting-DATABASES)。要将 Django 配置为使用 Connector/Python 作为 MySQL 后端,可以使用 Django 手册中的示例作为基础。

DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'mysql_user',
        'PASSWORD': 'password',
        'OPTIONS': {
          'autocommit': True,
          'use_oure': True,
          'init_command': "SET foo='bar';"
        },
    }
}

可以使用 OPTIONS 添加更多连接参数。

对 MySQL 功能的支持

Django 可以启动 MySQL 客户端应用程序 mysql。当 Connector/Python 后端执行此操作时,它会安排 sql_mode 系统变量在启动时设置为 TRADITIONAL

某些 MySQL 功能根据服务器版本启用。例如,当连接到 MySQL 5.6.4 或更高版本的服务器时,会启用对小数秒精度的支持。Django 的 DateTimeField 存储在定义为 DATETIME(6) 的 MySQL 列中,TimeField 存储为 TIME(6)。有关小数秒支持的更多信息,请参见 时间值中的小数秒

支持使用自定义类进行数据类型转换,作为 mysql.connector.django.base.DjangoMySQLConverter 的子类。此支持是在 Connector/Python 8.0.29 中添加的。