Python与MySql;SAWarning:Unicode类型接收到非Unicode绑定参数值“;错误
在问这个问题之前,我已经查看了类似网站上的其他帖子。提供的答案只是压制了警告,而不是提出补救措施 我有一个用Python+Flask编写的web应用程序,它处理用unicode格式的jquery发送的异步请求。Python与MySql;SAWarning:Unicode类型接收到非Unicode绑定参数值“;错误,python,mysql,unicode,sqlalchemy,Python,Mysql,Unicode,Sqlalchemy,在问这个问题之前,我已经查看了类似网站上的其他帖子。提供的答案只是压制了警告,而不是提出补救措施 我有一个用Python+Flask编写的web应用程序,它处理用unicode格式的jquery发送的异步请求。 内容类型:application/json;字符集=UTF-8 下面是从我的web浏览器发送到服务器的数据示例。数据可以是拉丁字符和非拉丁字符的混合。我注意到非拉丁字符是编码的,但拉丁字符不是 正文:“第三方”为“第三方”。 ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° поÑредÑ
内容类型:application/json;字符集=UTF-8
下面是从我的web浏览器发送到服务器的数据示例。数据可以是拉丁字符和非拉丁字符的混合。我注意到非拉丁字符是编码的,但拉丁字符不是
正文:“第三方”为“第三方”。
ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° поÑредÑтвенные отзывы,
фильм должен быть прикольным. Вот его
опиÑание
"
下面是我的MySqlAlchemy类的定义
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Unicode(1024))
现在,当我尝试将数据提交到数据库时,我收到以下错误:
SAWarning:Unicode类型接收到非Unicode绑定参数m值。param.append(processorskey) 在此期间,我使用Flask Restful组件来处理HTTP请求:
class PostListApi(Resource):
decorators = [login_required]
def post(self):
body=request.json['body']
post = Post(body=body)
db.session.add(post)
db.session.commit()
问题是我应该如何在服务器端正确处理数据,从而确保没有将非unicode字符写入数据库?您可以简单地强制正文使用unicode
class PostListApi(Resource):
decorators = [login_required]
def post(self):
body=request.json['body']
post = Post(body=unicode(body))
db.session.add(post)
db.session.commit()
ascii保持原样没关系。如何处理中间的数据?alko:我已经更新到postWhat python版本了?Python2和Python3处理Unicode的方式有很大的不同!