Sau khi nâng cấp lên bình 0,10, tôi nhận được lỗi này:Flask 0.10 đưa ra lỗi unicode trên cookie phiên
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')
gì self.save_session (ctx.session, phản ứng) cho bình/app.py dòng 1693 mang đến cho là: flask.sessions.SecureCookieSession ({'_ id': 'iB \ rOU # \ xf7BO \ x08^\ xa6 \ xd1) v \ xad', '_flashes': [('message', 'Vui lòng đăng nhập vào truy cập trang này. ')]})
Vì vậy, nếu tôi đọc chính xác, phiên sẽ cung cấp id mà bình cố gắng unicode (và không thành công). Tôi không có đầu mối về cách sửa lỗi này (làm trống bộ nhớ cache của trình duyệt của tôi để hy vọng một phiên mới không giúp được gì). Có ai cho tôi bất cứ đề nghị nào về những gì tôi nên làm không?
Trân trọng!
Carst
chỉnh sửa: một số thông tin thêm. Thiết lập của tôi sử dụng bình, flask_mail, flask.ext.mongoengine và flask.ext.security; tôi sử dụng MongoEngine: db = flask.ext.mongoengine.MongoEngine (ứng dụng) và bình bảo mật: user_datastore = flask.ext.security.MongoEngineUserDatastore (db, Người dùng, Vai trò) security = flask.ext.security.Security (ứng dụng, user_datastore)
Edit: nó dường như là một câu hỏi kép: Flask Login: TypeError: decoding Unicode is not supported
(đã không nhìn thấy nó, xin lỗi)
Câu hỏi này là không chính xác là một bản sao từ các câu trả lời có được giải quyết bằng cách hạ thấp lên phiên bản khác, trong khi đây là tác giả của Flask đưa ra câu trả lời thực sự hiệu quả. – Lipis