2013-06-13 11 views
6

0.10 Şişe yükselttikten sonra oturum çerezinin üzerinde unicode hata vererek, bu hatayı alıyorum:Şişesi 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') 

Ne self.save_session şişesi için (ctx.session, tepki)/app.py hat 1693 verir flask.sessions.SecureCookieSession ({ '_ kimliği': 'iB \ Rou # \ xf7BO \ X08^\ XA6 \ Xd1) v \ XAD', '_flashes': [('mesajı' için giriş Yapın', bu Ben doğru bu okursanız erişim Bu sayfayı. ')]})

Yani, seans unicode çalışırsa şişeyi (ve) başarısız bir kimliği verir. Bunu nasıl düzelteceğime dair bir ipucum yok (yeni bir oturumun da gelmemesi için tarayıcımın önbelleğini boşaltma). Herkes bana ne yapmam gerektiği konusunda tavsiyede bulunabilir mi?

Saygılarımızla

Carst

düzenleme: bazı ekstra bilgi. Benim kurulum flask, flask_mail, flask.ext.mongoengine ve flask.ext.security kullanır; i MongoEngine kullanımı: db = flask.ext.mongoengine.MongoEngine (uygulama) ve şişe güvenlik: user_datastore = flask.ext.security.MongoEngineUserDatastore (db, Kullanıcı, Rol) güvenlik = flask.ext.security.Security (app, user_datastore)

Düzenleme: Flask Login: TypeError: decoding Unicode is not supported

(görmemişti, üzgünüm)

+0

Bu soru tam olarak Flask burada yazar iken cevaplar, başka sürümüne geçişinizi orada çözme beri yinelenen Aslında işe yarayan bir cevap verdi. – Lipis

cevap

2

Geçici bir çözüm (KAVE sayesinde) Flask ve Werkzeug hem geçersiz kılınması olduğu:

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

Evet, Flask 0.9 kullanın: orada 0.9 yanlış bir şey ve biz hazır olmadan Flask-Giriş salımını yapma niyetim yok. (Biz hazır değiliz.) – maxcountryman

+3

@maxcountryman olan hazır şimdi? İşe yarıyor.. – Lipis

10

anda Flask-Login ile ilgili bir sorun: çifte soru gibi görünüyor. Bildiğim kadarıyla uzantının git sürümünde sabittir.

+0

Teşekkürler! ben bunu kontrol edecek (ve teşekkür Bu yayını bulmak insanlar için Flask :) yapmak için, ayrıca bkz: https://github.com/maxcountryman/flask-login/issues/78 – Carst

+0

Bu, herhangi bir sürümünde sabit olmamıştır Uzantının – maxcountryman

İlgili konular