python - Flask - 在某些路由上不一致地获取 404

标签 python flask quart

问题很简单

#This works
@app.route("/projects")
def user_home():
    return 'projects'

#This works
@app.route("/projects/new", methods=["GET", "POST"])
def create_project():
    return 'new project'

#This works
@app.route("/projects/<project_id>")
async def project_detail(project_id):
    return 'project detail'

#This works
@app.route("/projects/<project_id>/tasks")
def user_tasks(project_id):
    return 'project tasks'

#This gives a 404
@app.route("/projects/<project_id>/tasks/new", methods=["GET", "POST"])
def create_task(project_id):
    return 'new project task'

#This works
@app.route("/projects/<project_id>/tasks/<task_id>")
async def task_detail(project_id, task_id):
    return 'task detail'

最后一条路线给了我一个 404,尽管它遵循与上面相同的逻辑。

这里发生了什么?

如果我能更好地设计我的路线,我愿意接受建议,这是一个简单的主/细节/CRUD 应用程序

(标记 Quart 因为我实际上使用 Quart,但现在我假设这并不重要,因为它具有与 Flask 相同的 api)

最佳答案

我的您的代码没有收到任何错误,请重新检查。但也许你可以尝试一下

@app.route("/projects/<project_id>/tasks/new_task/", methods=["GET", "POST"])
def create_task(project_id):
    return 'new project task'

关于python - Flask - 在某些路由上不一致地获取 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57434765/

相关文章:

Python asyncio 跳过处理直到函数返回

python - 在 Google App Engine 中部署 Quart Python 应用程序

python - 坚持Boost-Python教程(Boost 1_64_0、Python3.6和msvc 14.0)

python - 使用 Python 从一个文本文件复制到另一个文本文件

iis - 如何在 Windows Server 上托管 Python 3.7 flask 应用程序?

python - ModuleNotFoundError : No module named 'geventwebsocket'

websocket - Quart(异步 Flask)应用程序中的 Autobahn websocket 客户端

python - PyQt:单击按钮后更改 GUI 布局

Python:如何将引发的异常识别为错误并通过 except 语句传递它

python - 无法在 python Flask 应用程序中向 SQL 数据库添加注释