【发布时间】:2013-10-14 13:52:44
【问题描述】:
我有 URL 相关的问题。我有索引页面和项目页面(可以显示多个项目之一,具体取决于您作为参数传递的项目键)。 我想要“漂亮”的网址,这样我就可以让 domainname.com/index 和 domainname.com/some_project_key 调用不同的视图函数
@app.route('/')
@app.route('/index')
def index():
pass
@app.route('/<path:projectkey>')
def project(projectkey):
pass
这对我不起作用,因为如果我尝试进入索引页面,它将通过索引函数,但在它返回模板之前它还将运行项目函数,其中它将对不存在的项目运行查询。 是否有一些内置解决方案或需要一些解决方法? 非常感谢我能得到的任何帮助。
【问题讨论】:
-
你必须返回。您没有退货声明
-
@Cfreak 有,但为了简单起见,我在这里省略了它们。
-
/index/中有反斜杠吗?不要忘记@app.route('/index')和@app.route('/index/')使用和不使用反斜杠时的工作方式不同。 -
@tbicr 不,它的末尾没有反斜杠。附带说明一下,如果我在 url 的末尾加上反斜杠以拥有 domainname.com/index/ 它只会调用项目函数。
-
你的代码没有问题,我只是用flask 0.10.1试了一下,一切正常,
/和/index调用index()函数和包括@987654327在内的所有其他函数@调用项目函数。