![](/img/trans.png)
[英]How could python treat unicode and non-unicode tuple as equal?
[英]Python with MySql “SAWarning: Unicode type received non-unicode bind param value” error
在提出這個問題之前,我已經檢查了類似的其他帖子。 提供的答案只是壓制了警告,而不是提出補救措施。
我有一個用Python + Flask編寫的Web應用程序,它以unicode格式處理用jquery發送的異步請求。 Content-Type:application/json; charset=UTF-8
以下是從我的Web瀏覽器發送到服務器的數據示例。 數據可以是拉丁字符和非拉丁字符的混合。 我注意到非拉丁字符是編纂的,但拉丁字母不是。
身體:“d¥Ð¾Ñ‡ÑƒNN ...оÐ'иÑ,ьна#N“DD»ÑŒÐ¼DSD°N€Ñ,ÐμлNOEÐÐμÑмоÑ,Ñ€ÑнапоÑÑ€ÐμÐ'。 ÑÑ,вÐμннÑ<ÐμоÑ,зN <вÑ<,N“DD»ÑŒÐ¼Ð'олжÐμнd±Ñ<Ñ,ьприкольнÑ<м。Ð'Ð¾Ñ ,ÐμгоопиÑаниÐμhttp ://www.allocine.fr/film/fichefilm_gen_cfilm=202971.html “
這是我的MySqlAlchemy類的定義
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Unicode(1024))
現在,當我嘗試將數據提交到數據庫時,我收到以下錯誤:
SAWarning:Unicode類型接收到非unicode綁定參數值。
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.