2

我有与 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

这对我不起作用,因为如果我尝试进入索引页面,它将通过索引函数,但在它返回模板之前它还将运行项目函数,其中它将对不存在的项目运行查询。是否有一些内置解决方案或需要一些解决方法?非常感谢我能得到的任何帮助。

4

1 回答 1

1

如果您尝试从 Web 浏览器调用索引页面,请记住许多浏览器也会对同一域进行 GET 调用以检索您的网站图标。在我试图复制这个...

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/index')
def index():
    print 'index'
    return 'index'

@app.route('/<path:projectkey>')
def project(projectkey):
    print 'project'
    return 'project'

app.run(debug=True)

运行后,我点击索引并收到...

index
127.0.0.1 - - [14/Oct/2013 18:08:41] "GET / HTTP/1.1" 200 -
project
127.0.0.1 - - [14/Oct/2013 18:08:41] "GET /favicon.ico HTTP/1.1" 200 -

换句话说,这是有效的。但是,会打印“project”,因为浏览器会向/favicon.ico.

于 2013-10-14T22:12:04.873 回答