【发布时间】:2014-04-21 19:13:12
【问题描述】:
我是使用 Flask 框架的新手用户,我正在尝试实现以下问题。
我有提供两个链接的用户网页:
- 设置
<a href="{{ url_for('user', user_name=name, user_id=id) }}">Settings</a> - 详情
<a href="{{ url_for('user', user_name=name, user_id=id) }}">Details</a>
在py 文件中,我想实现以下功能 - 一条路线,但两种行为取决于用户操作:
@app.route("/<user_name>/<int:user_id>")
def user(user_name, user_id):
# if user click on the "Settings" link then:
# ...
# some code
# ...
return render_template('user_settings.html', ...)
# if user click on the "Details" link then:
# ...
# some code
# ...
return render_template('user_details.html', ...)
或者可能是这样的 - 相同的路线但两个不同的定义:
# if user click on the "Settings" link then:
@app.route("/<user_name>/<int:user_id>")
def user_settings(user_name, user_id):
# ...
# some code
# ...
return render_template('user_settings.html', ...)
# if user click on the "Details" link then:
@app.route("/<user_name>/<int:user_id>")
def user_details(user_name, user_id):
# ...
# some code
# ...
return render_template('user_details.html', ...)
请给我一些提示,因为我不知道该怎么做?在此先感谢您的帮助! :-)
编辑: @dim:问我为什么要使用相同的 URL?上面的问题只是一个更好地理解我想要的例子。事实上,我在一个包含行和列的表中有一个输出。类似于在 Oracle Enterprise Manager 中输出的内容:
如您所见,有两个链接,但它们具有相同的 Oracle RMAN ID(这很重要,因为对数据库的查询具有相同的 WHERE 子句,例如:SELECT ... FROM ... WHERE SESSION_RECID = :parrent_id)。所以:
- 当我单击“备份名称”列中的链接时,我想呈现一个模板。
- 当我单击“状态”列中的链接时,我想呈现另一个模板。
总之,我想渲染两个不同的模板依赖于同一个端点的链接。
【问题讨论】:
-
为什么要他们拥有相同的 URL?您的
if在示例中会是什么样子? -
@dim:我编辑了帖子并添加了附加说明。
标签: python flask jinja2 werkzeug