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 #]
我正在尝试为 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 #]