2013-10-22 6 views
6

を再起動した後に残ります私にUnicodeDecodeErrorを与えました。さて、アプリケーションの再起動後でさえ、基本テンプレート(メッセージをレンダリングする)を拡張するすべてのページで同じユニコードコードエラーが発生します。ソースコード内のそのフラッシュを削除しても、常に同じdump()を使用してください。私が考えることができるのは、どんなことですか?助けてください。Pythonのフラスコフラッシュメッセージ例外は、私がこのような何かを持っていた小さなフラスコアプリを作ってるんだ

私はコンピュータを再起動して、愚かなセッションキャッシュなどをクリアしなければなりませんでした。

答えて

12

私はflash()が実際にセッション['_点滅']というセッションを作成すると思います。このコードhereを参照してください。彼らは正常に「消費」されるまで

clear/delete the cookie 

OR

session.pop('_flashes', None) 
+0

:これはあなたのファイルはUTF8文字列

#!/usr/bin/env python # -*- coding: utf-8 -*- 

が含まれていますので、あなたのコードは次のようなものになりますコンパイラを教えてくれます。たとえそのエラーが長い間前に修正されたとしても。 – Roman

0

フラスコを格納したセッションクッキーでメッセージを点滅:だから、おそらくどちらかになります。 UnicodeDecodeError(https://wiki.python.org/moin/UnicodeDecodeError)が表示された場合、メッセージは消費されないので、何度も何度もエラーが発生します。

私のソリューションは、ローカリゼーションを使用しているとき、私は問題を抱えていたので、私は次のように私の翻訳オブジェクトをインストールすることによって、今原因を解決し、ブラウザ

からクッキーを削除することでした

trans = gettext.GNUTranslations(...) 
trans.install(unicode=True) 

とUTF-ました私のPythonソースファイルでは8符号化、翻訳ファイル(.pot)では"Content-Type: text/plain; charset=UTF-8\n"

0

ASCII以外の文字列 "adiós"を使用しているため、Pythonが文字列をasciiではなくUnicodeとして処理する必要があります。

これをPythonファイルのヘッダーに追加します。おかげで、とても長い検索と必死だった、約5時間を失った。..

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 


from flask import Flask 
app = Flask() 

@app.route('/bye') 
def logout(): 
    session.pop('logged_in', None) 
    flash('Adiós') 
    return redirect('/index') 
関連する問題