2017-04-22 47 views
1

我正在使用Python 2.7和flask框架與flask-sqlalchemy模塊。Flask SQLAlchemy無法在MySQL中插入表情符號

我總是試圖插入時出現以下異常:Exception Type: OperationalError. Exception Value: (1366, "Incorrect string value: \xF09...

我已經設置MySQL數據庫,表和相應的列utf8mb4_general_ci,我可以使用終端插入表情符號的字符串。

Flask的應用程序配置已包含app.config['MYSQL_DATABASE_CHARSET'] = 'utf8mb4',但它根本沒有幫助,我仍然得到例外。

任何幫助表示讚賞

回答

0
  1. 添加配置文件主要文件,並設置設置'charset' => 'utf8mb4'
  2. 你必須編輯您想要的表情符號存儲領域,並設置collationutf8mb4_unicode_ci
+0

謝謝回答!我已經設置了排序規則,忘記提及它,對不起。你可以指定你的意思是「配置文件主文件」 – chaoz

+0

我的意思是在你的配置文件意味着你定義你的數據庫的項目和所有其他的東西 – Jenish

+0

先生,'app.config'字典中沒有'字符集'字段,只可能涉及的字段被稱爲「mysql_database_charset」,我已經改變了它。 – chaoz

0

製作一定要使用適當的Python Unicode對象,就像使用u"..."文字創建的那樣。換句話說,你的對象的類型應該是unicodestr

>>> type('ą') 
<type 'str'> 
>>> type(u'ą') 
<type 'unicode'> 

請注意,這僅適用於Python 2中,在Python 3所有的字符串文字都是Unicode默認。

0

它爲我的作品:

import pickle 
data = request.get_json().get("data") 
data = pickle.dumps(data) 

然後你可以輸入「數據」到數據庫中。

您可以發送「數據」,如「」......無論你喜歡什麼表情符號。

下一次,當你從數據庫中的 「數據」:

你應該:

data = pickle.loads(data) 

那麼你就可以得到 「數據」 爲 「」