警告:Django_mysql.w001
WARNING: Django_mysql.w001
我正在使用 Python 3.6 开发电子商务网站。我全新安装了 Django 2.0.6,并通过在 settings.py
中定义数据库变量将其连接到 MySQL 数据库(在本地主机上),如下所示:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'moda',
'OPTIONS' : {
'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'",
'init_command' : 'SET innodb_strict_mode=1',
'charset' : 'utf8mb4',
},
'USER' : 'root',
'PASSWORD' : '',
'SERVER' : 'localhost',
'PORT' : '3306'
}
}
并且在使用 cmd 运行 python manage.py check
命令之后,我收到以下警告:
(django_mysql.W001) MySQL Strict Mode is not set for database connection 'default'
HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w001-strict-mode
我什至使用了 ' init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
,但我仍然收到警告!
如果有专家能告诉我解决这个问题的正确方法,我将不胜感激!
谢谢大家。
django-mysql
的作者在这里。
字典中有两个 'init_command'
键,因此解析后只有第二个键在其中 - Python 只是像这样静默处理重复项。提示:使用 flake8
对您的源代码进行 lint,因为它会检测到这一点并向您发出警告。
此外,两个 SET
命令可以组合,给出:
...
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1",
'charset': 'utf8mb4',
},
...
HTH!
我正在使用 Python 3.6 开发电子商务网站。我全新安装了 Django 2.0.6,并通过在 settings.py
中定义数据库变量将其连接到 MySQL 数据库(在本地主机上),如下所示:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'moda',
'OPTIONS' : {
'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'",
'init_command' : 'SET innodb_strict_mode=1',
'charset' : 'utf8mb4',
},
'USER' : 'root',
'PASSWORD' : '',
'SERVER' : 'localhost',
'PORT' : '3306'
}
}
并且在使用 cmd 运行 python manage.py check
命令之后,我收到以下警告:
(django_mysql.W001) MySQL Strict Mode is not set for database connection 'default'
HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w001-strict-mode
我什至使用了 ' init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
,但我仍然收到警告!
如果有专家能告诉我解决这个问题的正确方法,我将不胜感激!
谢谢大家。
django-mysql
的作者在这里。
字典中有两个 'init_command'
键,因此解析后只有第二个键在其中 - Python 只是像这样静默处理重复项。提示:使用 flake8
对您的源代码进行 lint,因为它会检测到这一点并向您发出警告。
此外,两个 SET
命令可以组合,给出:
...
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1",
'charset': 'utf8mb4',
},
...
HTH!