我正在使用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
答案 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例外。这意味着成功调用了视图函数,但现在可以找到数据。