问题描述
TL;DR
我在这个网站上工作:sendsomething.net
我的 Flask 项目出现以下错误:
Traceback (most recent call last):
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1518,in __call__
return self.wsgi_app(environ,start_response)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1506,in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1504,in wsgi_app
response = self.full_dispatch_request()
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1264,in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1262,in full_dispatch_request
rv = self.dispatch_request()
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 1248,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/leilers/sendsomething/sendsomething_flask/sendsomething/views.py",line 62,in hello
return render_template('hello.html')
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/templating.py",line 121,in render_template
ctx.app.update_template_context(context)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask/app.py",line 661,in update_template_context
context.update(func())
File "/home/leilers/sendsomething/sendsomething_flask/sendsomething/views.py",line 54,in inject_login_form
g.login_form = LoginForm()
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/wtforms/form.py",line 208,in __call__
return type.__call__(cls,*args,**kwargs)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask_wtf/form.py",line 87,in __init__
super(FlaskForm,self).__init__(formdata=formdata,**kwargs)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/wtforms/form.py",line 274,in __init__
self.process(formdata,obj,data=data,line 131,in process
field.process(formdata)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/wtforms/csrf/core.py",line 43,in process
self.current_token = self.csrf_impl.generate_csrf_token(self)
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask_wtf/csrf.py",line 134,in generate_csrf_token
token_key=self.Meta.csrf_field_name
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/flask_wtf/csrf.py",line 42,in generate_csrf
if field_name not in g:
File "/home/leilers/sendsomething/env/lib/python2.7/site-packages/werkzeug/local.py",line 365,in <lambda>
__contains__ = lambda x,i: i in x._get_current_object()
TypeError: argument of type '_RequestGlobals' is not iterable
更深入
我没有网页设计经验,所以我很难过(并且已经好几天了)。如果以上内容是您帮助我解决问题所需的全部内容,那就太棒了。如果您需要更多详细信息,请点击此处:
我的 Flask 项目的 <root>/sendsomething/views.py
的相关部分
#...
@app.route("/")
def hello():
return render_template('index.html')
#...
文件 <root>/sendsomething/templates/index.html
确实存在。它的内容并不重要,因为更改内容不会对错误产生影响。您实际上可以通过访问 sendsomething.net 来查看输出。
我已阅读并尝试解决此相关问题 Flask argument of type '_RequestGlobals' is not iterable,这似乎是其他人遇到此问题的唯一实例。
我在我的 virtualenv 中,运行 python 2.7.16。我已经运行了 pip install Werkzeug --update
(虽然我的 requirements.txt
指定它应该使用 Werkzeug 0.8.2)。我已确保 which python
指向正确的位置。
如果您需要更多信息,请告诉我。感谢您的帮助!
解决方法
这只是我对它的第一眼,所以如果它不是一个有用的回答,我深表歉意。您的代码看起来像这样:
59 @app.route("/")
60 def hello():
61 #return render_template('index.html')
62 return render_template('hello.html')
你说 index.html 存在...看起来 index.html
的返回被注释掉了,它仍然试图转到 hello.html
。
所以应该如下,正如您在问题中所描述的:
@app.route("/")
def hello():
return render_template('index.html')