Python 跳过/跳过视图功能,以便下一个可以在Flask中执行
我有一个Flask应用程序,目前有如下内容:Python 跳过/跳过视图功能,以便下一个可以在Flask中执行,python,flask,Python,Flask,我有一个Flask应用程序,目前有如下内容: @app.route('/') def home(): return "homepage" @app.route('/<slug>') def feature(slug): return "feature: " + slug @app.route('/<path:url>') def catch(url): return "catch: " + url @app.route(“/”) def ho
@app.route('/')
def home():
return "homepage"
@app.route('/<slug>')
def feature(slug):
return "feature: " + slug
@app.route('/<path:url>')
def catch(url):
return "catch: " + url
@app.route(“/”)
def home():
返回“主页”
@应用程序路径(“/”)
def功能(缓动):
“返回”功能:“+slug”
@应用程序路径(“/”)
def捕获(url):
返回“catch:+url”
这在以下情况下起作用:
=>“主页”GET/
=>“功能:test1”GET/test1
=>“catch:test/2”GET/test/2
catch
,它们将从数据库中加载,并可能导致一些行为,例如重定向或返回404。这些都不是问题
我的问题是:在/test1
示例中,我希望实现以下行为:
test1
catch
view函数第三点是我不知道如何实现的部分。它似乎应该存在,但我在任何地方都找不到任何类型的“跳转到下一个匹配的视图函数”行为。这可能吗?如果可能,我缺少什么?您希望对路由使用条件逻辑-这可能不是路由的最佳点 然而:
请求
字段可能不同:
@app.route('/<slug>')
def feature(slug):
if slug_in_database(slug):
return "feature: " + slug
return catch(slug)
@app.route('/<path:url>')
def catch(url):
return "catch: " + url
@app.route('/<path:url>')
def feature_or_catch(url):
slug = url
if '/' not in slug and slug_in_database(slug):
return "feature: " + slug
return "catch: " + url
@app.route(“/”)
def功能_或_捕获(url):
slug=url
如果“/”不在slug中,而slug_在_数据库(slug)中:
“返回”功能:“+slug”
返回“catch:+url”
谢谢这几乎证实了我在最初的方法中并没有遗漏任何东西——但由于陷入了问题的泥潭,我错过了显而易见的东西。:-)
@app.route('/<path:url>')
def feature_or_catch(url):
slug = url
if '/' not in slug and slug_in_database(slug):
return "feature: " + slug
return "catch: " + url