Flask URL路由注册

时间:2015-08-13 10:27:33

标签: python flask routes

在Flask的路线注册功能http://flask.pocoo.org/docs/0.10/api/#url-route-registrations中,您可以执行以下操作:

@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>')

因此,在上面的示例中,我们希望转到特定页面上特定页面上的特定单词。

基本上我的问题是,变量部分是否需要是URL的最后一部分,还是可以为它添加更多位?

修改: 我所说的是,到目前为止我见过的所有例子都是这样的:

@app.route('/users/page/<int:page>')

但是你可以这样做:

@app.route('/users/page/<int:page>/sentence/<int:sentence>')

2 个答案:

答案 0 :(得分:2)

您可以在网址中添加查询字符串参数,例如?search=blue,但您无法添加其他&#34;文件夹&#34;例如.../<string:word>/character,因为路线与路线图中的条目不匹配。

但是如果你只是想定义路线而不是最后一部分是一个变量,那很好 - 例如

@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>/test')

编辑:

@app.route('/users/page/<int:page>/sentence/<int:sentence>')

也没关系 - 这与你在问题中给出的第一个例子没什么不同。

答案 1 :(得分:1)

您所做的完全可以接受。这是一个最小的例子:

from flask import Flask

app = Flask(__name__)


@app.route('/users/page/<int:page>/line/<int:line>/word/<string:word>')
def user_page(page, line, word):
    return '{} {} {}'.format(page, line, word)


if __name__=='__main__':
    app.run(port=5000, debug=True)

打开浏览器并导航至http://localhost:5000/users/page/5/line/47/word/something

Flask很乐意回来:

5 47 something