What exactly does the {'page': 1} mean here? "BuildError: ('main.user_profile', {'page': 1}, None)"

What exactly does the {'page': 1} mean here? "BuildError: ('main.user_profile', {'page': 1}, None)"

我正在尝试为 1 个用户的帖子创建分页对象。 当用户 current_user:

时一切正常
@auth.route('/auth/edit_profile', methods=['GET', 'POST'])
def edit_profile():
    ###
    page = request.args.get('page', 1, type=int)
    pagination = current_user.posts.order_by(Post.timestamp.desc()).paginate(
            page, per_page=15, error_out=False)
    posts = pagination.items
    return render_template('auth/edit_profile.html', form=form, 
            user=current_user, posts=posts, pagination=pagination)

但是如果在这样的方法中查询:

@main.route('/user/<username>')
def user_profile(username):
    target_user = User.query.filter_by(username=username).first()
    if not target_user:
        abort(404)
    page = request.args.get('page', 1, type=int)
    pagination = target_user.posts.order_by(Post.timestamp.desc()).paginate(
            page, per_page=15, error_out=False)
    posts = pagination.items
    return render_template('user_profile.html', user=target_user, posts=posts,
                           pagination=pagination, page=page)

编译的时候就出现了这个问题。

werkzeug.routing.BuildError
BuildError: ('main.user_profile', {'page': 1}, None)

我知道这种错误与没有特定视图功能的路由有关。在这种情况下,是否意味着我没有指定 Page-1-content 或什么?

请帮助我..我正在从头开始学习编码 0.0

这意味着它在你的主蓝图中找不到一个叫做user_profile的函数(如果你使用的是url_for),这个函数应该有一个叫做page的参数。比如像这样。

@WebApp.app.route('/errors_log/<int:page>', methods=['GET', 'POST'])
@flask_login.login_required
   def errors_log(page):

Zyber 是正确的,但这里有更多信息:

werkzeug.routing.BuildError
BuildError: ('main.user_profile', {'page': 1}, None)

表示没有名为 user_profile 的路由接受 page 的命名参数。您 do 有一个名为 user_profile 的路由,但它只接受一个 username 参数,如

中所定义
@main.route('/user/<username>')
def user_profile(username):

我看到您正在请求中查找 pages GET 变量:

page = request.args.get('page', 1, type=int)

请注意,您没有将 GET 参数传递给模板中的 url_for,因为这会使 Flask 将它们呈现给 URL 路由的一部分,而不是作为 GET 参数。您没有名为 user_profile 的方法在路由中采用 page 变量。

相反,尝试

{{ url_for('user_profile', username=[username]) }}?page=[page #]