首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶: werkzeug.routing.BuildError

烧瓶: werkzeug.routing.BuildError
EN

Stack Overflow用户
提问于 2022-01-03 13:52:46
回答 1查看 86关注 0票数 -1

我正在为一个项目创建一个健身网站,我得到了这个错误:

代码语言:javascript
复制
werkzeug.routing.BuildError: Could not build url for endpoint 'memberships'. Did you mean 'membershipsub' instead?

我最初创建了一个名为“会员制”的模板,并在获得此错误后将其重命名为“会员制子”(在它引用的所有文件中的任何地方),但仍然会得到此错误。

这是我构建模板的代码:

代码语言:javascript
复制
@app.route("/memberships", methods = ['GET', 'POST'])
def membershipsub():
    form = MembershipsubForm()
    plan1 = Membership_plan.query.filter_by(id=1).first()
    plan2 = Membership_plan.query.filter_by(id=2).first()
    plan3 = Membership_plan.query.filter_by(id=3).first()
    plan4 = Membership_plan.query.filter_by(id=4).first()
    plan5 = Membership_plan.query.filter_by(id=5).first()
    plan6 = Membership_plan.query.filter_by(id=6).first()
    plan7 = Membership_plan.query.filter_by(id=7).first()
    plan8 = Membership_plan.query.filter_by(id=8).first()
    plan9 = Membership_plan.query.filter_by(id=9).first()
    if form.validate_on_submit():
        age18 = ['18+ year', '18+ 6 month', '18+ month']
        age15 = ['15-17 year', '15-17 6 month', '15-17 month']
        age10 = ['10-14 year', '10-14 6 month', '10-14 month']
        if not (current_user.is_authenticated):
            flash('You need to have an account to subscribe to a membership', 'danger')
            return redirect(url_for('register'))
        elif (current_user.age >= 18) and (form.membershipsub.data not in age18):
            flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
        elif (14 < current_user.age < 18) and (form.membershipsub.data not in age15):
            flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
        elif (9 < current_user.age < 15 ) and (form.membershipsub.data not in age10):
            flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
        else:
            current_user.membership_plan = form.membershipsub.data
            current_user.membership_expiration_date = membership_expiration()
            db.session.commit()
            flash('You have now subscribed to this membership!', 'success')
            return redirect(url_for('mymembership'))       
    return render_template('membershipsub.html', title='Memberships', form=form, plan1=plan1, plan2=plan2, plan3=plan3, plan4=plan4, plan5=plan5, plan6=plan6, plan7=plan7, plan8=plan8, plan9=plan9)

此外,我没有使用蓝图,所以这不是问题。

EN

回答 1

Stack Overflow用户

发布于 2022-01-03 14:34:09

您的问题与模板名称无关。您需要的大部分信息都在错误消息中:

  • (用于端点“会员制”的url )无法构建,通常是当端点(路由)不存在或在其他情况下找不到。

如果您没有如下代码段所示的代码,这将解释您所得到的错误:

代码语言:javascript
复制
@app.route('/memberships')
def memberships():
    return render_template('template_name.html')

您必须遍历代码,找到导致问题的对url_for('memberships')的调用,并将其更新为引用现有路由。

从您的问题中还不清楚是哪个调用url_for导致了这个问题。在您共享的代码片段中有两个对url_for的调用,但是它们引用了“注册”和“成员资格”,而您的错误消息引用了“成员身份”,所以代码段需要更新,或者对url_for的调用在模板代码中,您没有共享。

虽然您的问题不是完全重复的,但公认的答案here解释了您需要了解的关于url_for如何工作的大部分内容。(以及其他使用方法)

请随时更新您的问题与额外的信息,我可以随时更新或删除这个答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70566788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档