ORM操作数据库问题处理总结

在学习通过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解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值