4
欲以瓶的url_for方法时,我有一个错误。我不确定它是什么原因,因为我只跟随Flask快速入门。我是一个具有Python经验的Java人,想要学习Flask。烧瓶url_for类型错误
这里的痕迹:
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)
我已经试过瓶的稳定和发展都版本,并仍然出现错误。任何帮助都感激不尽!谢谢你,如果我的英语不太好,很抱歉。
我不好,你说得对。但现在又出现了一个错误。 '打印url_for( '登录') 文件 “/home/cobi/Dev/env/flask/latest/flask/helpers.py”,线路296,在url_for 回报appctx.app.handle_url_build_error(错误,端点值) 文件 “/home/cobi/Dev/env/flask/latest/flask/helpers.py”,线路289,在url_for force_external =外部) 文件“/家/ COBI /开发/ ENV /瓶/最新/ VENV/local/lib目录/ python2.7 /站点包/ WERKZEUG-0.8.3-py2.7.egg/WERKZEUG/routing.py”,线路1607,在建 提高BuildError(端点,价值观,方法) WERKZEUG .routing.BuildError:(“登录”,{},无)' – cobicobi
您的问题是,它预计,登录功能有提供的用户名。改为使用url_for('login',username ='cobicobi')。 –
啊我想我现在明白了。你是对的。 'url_for'需要至少有端点中定义的参数。如果我没有在端点定义参数比'url_for'将工作与任何一个参数或没有。但是,如果我在它定义一个参数,我还必须提供在'url_for'调用参数。 – cobicobi