2017-04-22 44 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) 

那么你就可以得到 “数据” 为 “”