在学习通过ORM方式操作数据库时,创建表格和插入数据时都遇到如下问题:
Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA
\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 484")
Warning: (1287, "'@@tx_isolation' is deprecated and will be re
moved in a future release. Please use '@@transaction_isolation' instead")
由于报错信息为警告,所以创建表和数据插入也可以正确执行,但本着解决问题的心态,在网上查询了大量资料,最终在SQLAlchemy官方文档中得知,造成该警告信息的原因SQLAchemy使用的MySQL驱动导致的
如图,默认使用的DBAPI(数据库应用程序接口)是mysql-python
中文版解释如下:
因此具体解决方法为指定mysql驱动:
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:password@127.0.0.1:3306/mydatabase"
(不同的DBAPI可能写法不同,像我之前是mysql+pymysql)
改为:
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://root:password@127.0.0.1:3306/mydatabase"
问题即得到解决。
附ORM简介:
ORM简介:对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。