2013-06-13 6 views
6

0.10 कुप्पी के उन्नयन के बाद, मैं इस त्रुटि मिलती है:बोतल 0.10 सत्र कुकी पर यूनिकोड त्रुटि है

flask.debughelpers.UnexpectedUnicodeError 
UnexpectedUnicodeError: A byte string with non-ASCII data was passed to the session system which can only store unicode strings. Consider base64 encoding your string (String was 'iB\rOU#\xf7BO\x08^\xa6\xd1)v\xad') 

Traceback (most recent call last) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ 
return self.wsgi_app(environ, start_response) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app 
response = self.make_response(self.handle_exception(e)) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception 
reraise(exc_type, exc_value, tb) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app 
response = self.full_dispatch_request() 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1479, in full_dispatch_request 
response = self.process_response(response) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1693, in process_response 
self.save_session(ctx.session, response) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 837, in save_session 
return self.session_interface.save_session(self, session, response) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/sessions.py", line 321, in save_session 
val = self.get_signing_serializer(app).dumps(dict(session)) 
File "/srv/www/li/venv/lib/python2.7/site-packages/itsdangerous.py", line 471, in dumps 
return self.make_signer(salt).sign(self.dump_payload(obj)) 
File "/srv/www/li/venv/lib/python2.7/site-packages/itsdangerous.py", line 676, in dump_payload 
json = super(URLSafeSerializerMixin, self).dump_payload(obj) 
File "/srv/www/li/venv/lib/python2.7/site-packages/itsdangerous.py", line 454, in dump_payload 
return self.serializer.dumps(obj) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/sessions.py", line 82, in dumps 
return json.dumps(_tag(value), separators=(',', ':')) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/sessions.py", line 72, in _tag 
return dict((k, _tag(v)) for k, v in iteritems(value)) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/sessions.py", line 72, in <genexpr> 
return dict((k, _tag(v)) for k, v in iteritems(value)) 
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/sessions.py", line 80, in _tag 
u'base64 encoding your string (String was %r)' % value) 
UnexpectedUnicodeError: A byte string with non-ASCII data was passed to the session system which can only store unicode strings. Consider base64 encoding your string (String was 'iB\rOU#\xf7BO\x08^\xa6\xd1)v\xad') 

क्या self.save_session (ctx.session, प्रतिक्रिया) कुप्पी के लिए/app.py लाइन 1693 देता है यह है: flask.sessions.SecureCookieSession ({'_ id': 'iB \ rOU # \ xf7BO \ x08^\ xa6 \ xd1) v \ xad', '_flashes': [('message', 'कृपया लॉग इन करें इस पृष्ठ तक पहुंचें। ')]})

तो, अगर मैं इसे सही ढंग से पढ़ता हूं, तो सत्र एक आईडी देता है जो फ्लास्क यूनिकोड (और विफल रहता है) की कोशिश करता है। मुझे इस पर कोई संकेत नहीं है कि इसे कैसे ठीक किया जाए (मेरे ब्राउज़र कैश को खाली करने के लिए आशा है कि नए सत्र की मदद न हो)। क्या कोई मुझे मुझे क्या करना चाहिए इस पर कोई सुझाव दे सकता है?

सधन्यवाद,

Carst

संपादित करें: कुछ अतिरिक्त जानकारी। मेरा सेटअप फ्लास्क, flask_mail, flask.ext.mongoengine और flask.ext.security का उपयोग करता है; मैं MongoEngine का उपयोग करें: db = flask.ext.mongoengine.MongoEngine (ऐप्लिकेशन) और कुप्पी के सुरक्षा: user_datastore = flask.ext.security.MongoEngineUserDatastore (db, उपयोगकर्ता, भूमिका) सुरक्षा = flask.ext.security.Security (अनुप्रयोग, user_datastore)

संपादित करें: Flask Login: TypeError: decoding Unicode is not supported

(यह नहीं देखा था, खेद)

+0

यह सवाल नहीं है वास्तव में एक नकली के बाद से जवाब, दूसरे संस्करण के पदावनति द्वारा वहाँ सुलझाने रहे हैं, जबकि यहां बोतल के लेखक एक जवाब दिया जो वास्तव में काम करता है। – Lipis

उत्तर

2

एक अस्थायी समाधान (Kave करने के लिए धन्यवाद) दोनों बोतल और WERKZEUG पदावनति है:

pip install werkzeug==0.8.3 
pip install flask==0.9 
pip install Flask-Login==0.1.3 
+0

हां, कृपया फ्लास्क 0.9 का उपयोग करें: 0.9 के साथ कुछ भी गलत नहीं है और हमारे पास तैयार होने से पहले फ्लास्क-लॉगिन की रिहाई करने का कोई इरादा नहीं है। (हम तैयार नहीं हैं।) – maxcountryman

+3

@maxcountryman अब आप तैयार हैं? यह काम करता हैं.. – Lipis

10

वर्तमान में Flask-Login में कोई समस्या है कि: यह एक डबल सवाल प्रतीत होता है। जहां तक ​​मुझे पता है कि यह विस्तार के गिट संस्करण में तय है।

+0

धन्यवाद! मैं इसे देख लूंगा (और फ्लास्क बनाने के लिए धन्यवाद :) जो लोग इस पोस्ट को ढूंढते हैं, उनके लिए यह भी देखें: https://github.com/maxcountryman/flask-login/issues/78 – Carst

+0

यह किसी भी संस्करण में तय नहीं किया गया है विस्तार का। – maxcountryman

संबंधित मुद्दे