sqlalchemy mysql配置中怎么设置utf8_在SqlAlchemy中,我想要一个列是UTF8?
我注意到我的MySQL數(shù)據(jù)庫在默認(rèn)情況下沒有設(shè)置為UTF-8。改為選擇latin1_swedish_ci排序規(guī)則。在
所以我很自然地遇到了一個(gè)用戶報(bào)告的錯(cuò)誤,我的應(yīng)用程序不支持特殊字符。我去確保我的應(yīng)用程序正確地處理了UTF-8,編寫了一個(gè)測試,很肯定它可以很好地使用內(nèi)存中的SQLite,但不能用于生產(chǎn)MySQL我似乎從SQLAlchemy文檔中得到的解決方案是對我的列傳遞一個(gè)排序規(guī)則:column = db.Column(db.String(500, collation='utf8_general_ci'))
不幸的是,這導(dǎo)致我基于SQLite的單元測試失敗——utf8_general_ci不是SQLite支持的編碼。它是MySQL特有的。在
SQLite似乎可以使用UTF-8而不指定排序規(guī)則。我可以用MySQL進(jìn)行測試,但是內(nèi)存中的SQLite數(shù)據(jù)庫對于spot測試來說是一個(gè)更快、更直接的測試選項(xiàng)。我確實(shí)優(yōu)先考慮測試的易用性,所以回到使用SQLite進(jìn)行測試對我來說是一個(gè)很大的優(yōu)先事項(xiàng)。在
我嘗試過的其他事情
我也試著加入
^{pr2}$
到我的連接字符串。我還使用了db.Unicode,而不是db.String。似乎沒什么區(qū)別。在
問題
通過SQLAlchemy是否有一種直接的和數(shù)據(jù)庫無關(guān)的方法來指示一個(gè)列應(yīng)該用UTF-8編碼?在
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的sqlalchemy mysql配置中怎么设置utf8_在SqlAlchemy中,我想要一个列是UTF8?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序--页面传参
- 下一篇: Web前端程序员简历模板