以前我在写一个Flask项目,而后运行models.py文件时,出现了一个Bug,就是这个:html
F:\book\lib\site-packages\pymysql\cursors.py:170: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 481")
当时我找了不少资料都是说数据库的编码出了问题,让我查看数据库的编码格式: 在查询框内输入:python
show variables like '%char%';
就出现这么一大堆,可是都是utf8,记住utf8mb4是utf8的超集,也就是比它还能表示更多的字符如eimijo等,想更加了解的请点击这里:utf8mb4与utf8的区别 mysql
而后我又打开的mysql的安装包,甚至查看了它的my.ini文件,不知道它在哪能够点击这里:MySQL配置文件-my.ini,由于个人安装目录不在C盘,个人是这里:sql
F:\mysql\mysql-5.7.21-winx64
打开my.ini文件,个人配置是这样:数据库
[mysqld] port = 3306 basedir=F:/mysql/mysql-5.7.21-winx64 datadir=F:/mysql/mysql-5.7.21-winx64/data max_connections=200 character-set-server=utf8mb4 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8
也是没有问题的!app
后来经过查找源代码,才发现这是mysql5.7的一个Bug,可是咱们仍是能够解决的!编码
咱们以前的配置是:安装pymysql,而后导入使用.net
import pymysql app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://帐号:密码@localhost/appname"
如今咱们不用这个了,改用mysql-connector-python,你能够点击这里到官网进行下载,而后在你虚拟环境下面的Lib进行安装便可,也能够在Pycharm中直接进行安装。官网的地址请点击这里mysql-connector-python.code
而后配置以下:server
import mysql.connector app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://帐号:密码@localhost/appname"
而后再运行一下models.py文件,发现这个错误就没有了!(前提是前面的数据库表编码格式已经修改正确了)
好了,本次的分享就到此为止了,若有任何问题欢迎留言交流!!!