当我尝试在Flask中使用url_for方法时,出现了错误。我不确定原因是什么,因为我只是按照Flask的快速入门进行操作。我是一名Java程序员,有一点Python经验,想学习Flask。
以下是错误追踪信息:
以下是错误追踪信息:
Traceback (most recent call last):
File "hello.py", line 36, in <module>
print url_for(login)
File "/home/cobi/Dev/env/flask/latest/flask/helpers.py", line 259, in url_for
if endpoint[:1] == '.':
TypeError: 'function' object has no attribute '__getitem__
我的代码如下:
from flask import Flask, url_for
app = Flask(__name__)
app.debug = True
@app.route('/login/<username>')
def login(): pass
with app.test_request_context():
print url_for(login)
我尝试过Flask的稳定版和开发版,但错误仍然存在。非常感谢任何帮助!如果我的英语不是很好,请原谅。
print url_for('login') File "/home/cobi/Dev/env/flask/latest/flask/helpers.py", line 296, in url_for return appctx.app.handle_url_build_error(error, endpoint, values) File "/home/cobi/Dev/env/flask/latest/flask/helpers.py", line 289, in url_for force_external=external) File "/home/cobi/Dev/env/flask/latest/venv/local/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg/werkzeug/routing.py", line 1607, in build raise BuildError(endpoint, values, method) werkzeug.routing.BuildError: ('login', {}, None)
- cobicobiurl_for
至少需要在端点中定义一个参数。如果我在端点中不定义参数,则url_for
将可以使用带参数或不带参数的方式工作。但是,如果我在其中定义了一个参数,那么在url_for
调用中也必须提供该参数。 - cobicobi