Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未找到烧瓶路径_Python_Flask_Flask Sqlalchemy - Fatal编程技术网

Python 未找到烧瓶路径

Python 未找到烧瓶路径,python,flask,flask-sqlalchemy,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('/

我正在使用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)
@app.route('/Category//Item/new',methods=['GET','POST'])
def新项目(类别名称):
user=getUser()
如果用户为无:
返回重定向(“/login”)
如果request.method==“POST”:
newItem=Category(name=request.form['name'],
description=request.form['description'],creator=session['username'],
category\u id=db.query(category.id).filter\u by(category\u name=category\u name).all())
db.add(newItem)
db.commit()
返回重定向(url_for('showCategory(category_name)'))
其他:
返回呈现模板('newItem.html',categories=categories)
模板文件夹中确实存在newItem.html模板,并使用我用于查看项目的另一个路径:
@app.route('/Category//Item/
起作用,因此正在定义Category\u名称。我要使用的url是
https://localhost:5000/Category/Sports/Item/new
而且体育是数据库中的一个类别,我不明白为什么我会得到404


回溯(显示试图进入showItem路线而不是newItem路线):

您遇到异常。这意味着视图函数调用成功,但现在可以找到数据。

您遇到异常。这意味着视图函数调用成功,但现在可以找到数据。

您的URL规则命中了错误的函数

@app.route('/Category//Item/
恰巧相配
https://localhost:5000/Category/Sports/Item/new

您需要在第一个线段上添加一个额外的线段,如
@app.route('/Category//Item/existing/

您的URL规则使用了错误的函数

@app.route('/Category//Item/
恰巧相配
https://localhost:5000/Category/Sports/Item/new

您需要在第一个线段上添加一个额外的线段,如

@app.route('/Category//Item/existing/

能否显示完整的堆栈跟踪?当您尝试在这行代码中重定向时是否会发生错误-
返回重定向(url\u for('showcegory(Category\u name)'))
?你能提供一个到你的Git repo的链接吗?@AamirKhan你为什么需要到他的repo的链接?@Nurzhan添加了回溯,它尝试使用路径查看名为“new”的项目不是进入我定义的路径。Aamir,它是一个本地git repo,不在线。@WillScott Sqlalchemy抱怨它找不到特定的记录。解决这个问题,看看它是否有效。你能显示完整的堆栈跟踪吗?当你尝试在这一行代码中重定向时是否会发生错误-
返回重定向(url\u for('showcegory(category_name);
?你能提供一个到你的Git repo的链接吗?@AamirKhan为什么你需要到他的repo的链接?@Nurzhan添加了回溯,它试图使用该路径查看名为“new”的项目不是进入我定义的路由。Aamir,它是一个本地git repo,不在线。@WillScott Sqlalchemy抱怨它找不到特定的记录。修复它,看看它是否工作。当我进入该函数的路由时,该视图函数工作正常,它抛出异常,因为它试图运行showItem()当路由应该运行newItem()时,请确认。您正在调用
GEThttps://localhost:5000/Category/Sports/Item/new
(用于
newItem
视图)并使用
showItem
视图进行回溯)?当我转到该函数的路由时,该视图函数工作正常,它会引发异常,因为它试图运行showItem(),而路由应该运行newItem(),所以,只是为了确认。您正在调用
GEThttps://localhost:5000/Category/Sports/Item/new
(用于
新项目
视图)以及通过
showItem
view获取回溯)?此外,可能是顺序问题(注册视图时)。虽然您可以通过更改顺序来解决此问题,但最好确保您的路由完全明确,如果一个字符串可以匹配其中两个,请更改一个。这是一个解决方案,但我希望URL尽可能简单,@dizpers它的顺序是正确的。我做了大量的更改,我不确定是什么确切地修复了它,但它现在正在工作,所以我接受这个答案,因为它是一个解决方案。@PaulBecotte agree:)您可以使用id而不是名称,为GET路由提供
,同时仍然是明确的。因此,可能是顺序问题(在注册视图时)。虽然您可以通过更改顺序来解决此问题,但最好确保您的路由完全明确,如果一个字符串可以匹配其中两个,请更改一个。这是一个解决方案,但我希望URL尽可能简单,@dizpers它的顺序是正确的。我做了大量的更改,我不确定是什么确切地修复了它,但它现在正在工作,所以我接受这个答案,因为它是一个解决方案。@PaulBecotte agree:)您可以使用id而不是名称,为GET路由提供
,同时仍然是明确的