Flask与`unicode_literals`

最近在写Flask,遇到一个诡异的问题

Traceback (most recent call last):
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/app.py", line 1685, in wsgi_app
    with self.request_context(environ):
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/ctx.py", line 274, in __enter__
    self.push()
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/ctx.py", line 238, in push
    self.session = self.app.open_session(self.request)
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/app.py", line 792, in open_session
    return self.session_interface.open_session(self, request)
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/flask/sessions.py", line 191, in open_session
    secret_key=key)
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/werkzeug/contrib/securecookie.py", line 312, in load_cookie
    return cls.unserialize(data, secret_key)
  File "/Users/yegle/git/apkay/apkay-venv/lib/python2.7/site-packages/werkzeug/contrib/securecookie.py", line 259, in unserialize
    mac = hmac(secret_key, None, cls.hash_method)
  File "/Users/yegle/.gentoo/usr/lib/python2.7/hmac.py", line 133, in new
    return HMAC(key, msg, digestmod)
  File "/Users/yegle/.gentoo/usr/lib/python2.7/hmac.py", line 72, in __init__
    self.outer.update(key.translate(trans_5C))

排查之后发现是定义secret_key的文件头有加入unicode_literals,导致报错。

unicodesecret_key改为b'blablabla'解决问题

Comments !

blogroll

social