After upgrading to Flask 0.10, I get this error:
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')
What self.save_session (ctx.session, response) does for the flask / app.py 1693 line is: flask.sessions.SecureCookieSession ({'_ id': 'iB \ rOU # \ xf7BO \ x08 ^ \ xa6 \ xd1) v \ xad ',' _flashes ': [(' message ',' Please log in to open this page. ")]})
So, if I read this correctly, the session gives an identifier that the checkbox is trying to execute unicode (and does not work). I don’t know how to fix this (releasing the browser cache to hope for a new session didn’t help either). Can someone give me any suggestions on what I should do?
Yours faithfully,
Karst
edit: additional information. My installation uses a flask, flask_mail, flask.ext.mongoengine and flask.ext.security; I use MongoEngine: db = flask.ext.mongoengine.MongoEngine (application) and security bottle: user_datastore = flask.ext.security.MongoEngineUserDatastore (db, User, Role) security = flask.ext.security.Security (app, user_datastore )
Edit: this is a double question: Flask Login: TypeError: Unicode decoding is not supported
(not seen, sorry)