如果我正在创建一个博客站点,并且我想设置这样的路由

@app.route('/<username>/<postname>', methods=['GET'])

路由到名为“user name”的用户的名为“postname”的帖子,如何使html识别此内容?我一直想做些
<a href={{ url_for('/', username=user.name, postname=post.name) }}>{{post.name}}</a>

我还尝试将此与Flask理解特殊关键字/login或/about进行协调,以便它检查用户是否首先尝试访问这些关键字。我如何实施这些检查?

最佳答案

模板中url_for的第一个参数应该是您修饰的view函数的名称:

@app.route('/<username>/<postname>', methods=['GET'])
def view_user_post(username, postname):
    ^^^^^^^^^^^^^^

现在,您可以在模板中编写:
{{ url_for('view_user_post', username=user.name, postname=post.name) }}

这允许您更改路由中的URL,而不必在代码库中的其他位置更新它。

10-08 04:30