在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装​

 

Django 如何链接 MySQL 数据库, 需要在.../项目/settings.py 文件中修改数据库相关配置。

 

配置代码如下



# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases

# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }

# MySQL
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'HOST':'127.0.0.1',
'PORT':'3306',
'NAME':'guest', # 数据库名
'USER':'username',
'PASSWORD':'password',
'OPTIONS':{
'init_command':"SET sql_mode='STRICT_TRANS_TABLES'"
},
}
}
# mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。
# ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。
# TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。
# STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。
#


 

 

配置信息从上到下依次是驱动(ENGINE) , 主机地址(HOST) , 端口号(PORT) , 数据库(NAME),

登录用户名(USER) , 登录密码(PASSWORD) 。

关于, sql_mode 的设置, 请参考 Django 文档。

注意:

Django 在连接 MySQL 数据库时默认使用的是 MySQLdb 驱动, 然而我们没有安装该

驱动, 因为它并不支持 Python3, 我们现在安装的是 PyMySQL 驱动, 如何让当前的 Django 通过 PyMySQL 来连接 MySQL 数据库呢? 方法很简单。

Django - Python3 配置 MySQL_数据库

 

Django - Python3 配置 MySQL_sql_02

Django - Python3 配置 MySQL_django_03

 安装后,启动应用,报如图错误,

 Django - Python3 配置 MySQL_django_04

 

 解决办法:在 ⁨anaconda3⁩ ▸ ⁨envs⁩ ▸ ⁨Adil⁩ ▸ ⁨lib⁩ ▸ ⁨python3.7⁩ ▸ ⁨site-packages⁩ ▸ ⁨django⁩ ▸ ⁨db⁩ ▸ ⁨backends⁩ ▸ ⁨mysql⁩ ▸__init__.py 中添加如下代码

 

在.../__init__.py 中添加:



import pymysql
pymysql.install_as_MySQLdb()


 

至此,完成配置工作。

 如图不再 报错。

Django - Python3 配置 MySQL_数据库_05

 


China-测试开发】技术交流群期待你的加入【 193056556

欢迎扫码关注:日益】微信订阅号【 riyi18


Django - Python3 配置 MySQL_mysql_06