找不到烧瓶路线

时间:2017-06-10 16:03:32

标签: python flask flask-sqlalchemy

我正在使用flask和sqlalchemy构建目录应用程序,但我的一条路线正在给出404,我不知道为什么。以下是路线和功能的代码:

@app.route('/Category/<string:category_name>/Item/new', methods=['GET', 'POST'])
def newItem(category_name):
    user = getUser()
    if user is None:
        return redirect('/login')
    if request.method == 'POST':
        newItem = Category(name=request.form['name'],
        description=request.form['description'], creator=session['username'],
        category_id=db.query(Category.id).filter_by(category_name=category_name).all())
        db.add(newItem)
        db.commit()
        return redirect(url_for('showCategory(category_name)'))
    else:
        return render_template('newItem.html', categories=categories)

newItem.html模板确实存在于模板文件夹中,并使用我查看项目的其他路径:@app.route('/Category/<string:category_name>/Item/<string:item_name>可以正常工作,因此正在定义category_name。我要去的网址是https://localhost:5000/Category/Sports/Item/new,而体育是数据库中的一个类别,我无法弄清楚为什么我会得到404

Traceback(显示尝试输入showItem路线而不是newItem路线):enter image description here

2 个答案:

答案 0 :(得分:2)

您的网址规则正在使用错误的功能......

@app.route('/Category/<string:category_name>/Item/<string:item_name> 碰巧匹配 https://localhost:5000/Category/Sports/Item/new

你需要在第一个片段中添加一个额外的片段 @app.route('/Category/<string:category_name>/Item/existing/<string:item_name>

答案 1 :(得分:0)

您获得sqlalchemy.orm.exc.NoResultFound例外。这意味着成功调用了视图函数,但现在可以找到数据。