【发布时间】:2014-05-14 23:29:49
【问题描述】:
我不知道额外的None 是从哪里来的。我试过这些链接无济于事:Build error with variables and url_for in Flask
how to use Flask Jinja2 url_for with multiple parameters
另外,我不使用BluePrint。
这是我的 users.html 模板:
<a href="{{ url_for('user_page', user_id=user.user_id) }}"> {{ user.name }} </a>
这是我尝试过的两个不同的user.py 文件:
@app.route('/user')
def user_page():
args = show_user_parser.parse_args()
user_id = args['user_id']
return page_for_user(user_id)
@app.route('/user/<user_id>')
def user_page(user_id):
return page_for_user(user_id)
def page_for_user(user_id):
try:
cur.execute(list_user_detailed_query, (user_id,))
except psycopg2.OperationalError:
return render_template('error.html')
except psycopg2.IntegrityError:
connection.rollback()
return render_template('error.html')
data = cur.fetchone()
return render_template('user.html',
name=data['name'],
email=data['email'],
undergrad=data['undergrad'],
cv=data['cv'])
这是构建错误:
BuildError: ('user_page', {'user_id': '1'}, None)
【问题讨论】:
-
page_for_user() 函数有什么作用?你能显示它的代码吗?
-
添加了代码,尽管它可能不相关,因为手动输入 /user/id 或 /user?user_id=... 工作正常。
标签: python flask jinja2 url-for