Flask 和 sqlalchemy 创建数据表错误和警告
1.使用 pymysql 出现警告:
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:root@localhost:3306/dbname"
如上配置会出现下面的警告,但是数据都已经创建成功。
Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 479")
解决办法:
将 pymysql 替换,使用 mysql-connector 库来做驱动。如下:
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://root:root@localhost:3306/dbname"
2.中文乱码
我本人在做测试的时候用的是 Navicat + Pycharm + Python 3.7 + Mysql server 8.0,在命令行插入数据后发现 Navicat 中文显示乱码,不论是在 Mysql server 做修改还是在 Flask 中修改都无法解决。
最后发现,我在 Navicat 中创建数据库链接的时候的编码用了 utf8,导致了中文显示乱码。是 Navicat 对中文做了一些额外的处理?
反正最后把编码改为 Auto 自动就可以了。
记录一下。