Hou*_*man 9 flask uwsgi flask-login
I am running flask, pymongo and flask-login as a stack.
My flask app is running fine locally, but once I deploy it with uwsgi on nginx, I get a strange unicode error from flask_login extension.
In short:
TypeError: decoding Unicode is not supported
Run Code Online (Sandbox Code Playgroud)
Traceback:
[pid: 21753|app: 0|req: 5/5] 84.207.253.34 () {38 vars in 600 bytes} [Thu Jun 13 16:51:08 2013] GET / => generated 0 bytes in 4 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
Traceback (most recent call last):
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1473, in full_dispatch_request
rv = self.preprocess_request()
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1666, in preprocess_request
rv = func()
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 311, in _load_user
deleted = self._session_protection()
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 325, in _session_protection
ident = _create_identifier()
File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 133, in _create_identifier
request.headers.get("User-Agent")), 'utf8', errors='replace')
TypeError: decoding Unicode is not supported
Run Code Online (Sandbox Code Playgroud)
Why is this not happening in dev environment? Hence it must be somehow related to uwsgi on nginx. Any suggestions? Many Thanks
Hou*_*man 17
单独降级烧瓶不会解决问题,因为即使安装flask==0.9也会安装最新的依赖项,这是不好的werkzeug==0.9
因此,您最好按此顺序安装以下内容:
pip install werkzeug==0.8.3
pip install flask==0.9
pip install Flask-Login==0.1.3
Run Code Online (Sandbox Code Playgroud)
烧瓶登录,然后可以是0.1.3的最新版本.那里没有伤害.这个堆栈适合我.
希望这会有所帮助,直到紧急补丁结束.
我在开发环境中遇到了同样的问题,Flask 0.10和Flask-Login 0.1.3
看起来像烧瓶0.10现在有unicode请求标头所以烧瓶登录尝试编码已编码的字符串时爆炸...
Flask_login的人已经开始研究它了:https: //github.com/maxcountryman/flask-login/issues/78
(编辑)即时幸福的道路(如github双线,thx Kofalt&Kave所见!)
pip uninstall flask ; pip uninstall werkzeug ; pip uninstall Flask-Login ; pip install werkzeug==0.8.3 ; pip install flask==0.9 ; pip install Flask-Login==0.1.3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3877 次 |
| 最近记录: |