ORM操作資料庫問題處理總結
阿新 • • 發佈:2019-01-06
在學習通過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:[email protected]:3306/mydatabase"
(不同的DBAPI可能寫法不同,像我之前是mysql+pymysql)
改為:
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://root: [email protected]:3306/mydatabase"
問題即得到解決。
附ORM簡介:
ORM簡介:物件關係對映(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向物件與關係資料庫存在的互不匹配的現象的技術。ORM解決的主要問題是物件關係的對映。域模型和關係模型分別是建立在概念模型的基礎上的。域模型是面向物件的,而關係模型是面向關係的。一般情況下,一個持久化類和一個表對應,類的每個例項對應表中的一條記錄,類的每個屬性對應表的每個欄位。