python flask如何从url获取路由id

时间:2015-01-30 05:20:24

标签: python flask

我正在使用烧瓶。我有一个网址,例如:http://example.com/page/page_id

我想知道如何从路径中的url获取page_id部分。我希望我可以设计一些方法,例如:

@route('/page/page_id')
   def page(page_id):
       pageid = page_id

3 个答案:

答案 0 :(得分:21)

非常简单 - 在尖括号之间传递path参数,但一定要将该名称传递给您的方法。

@app.route('/page/<page_id>')
def page(page_id):
    pageid = page_id
    # You might want to return some sort of response...

答案 1 :(得分:10)

您应该使用以下语法:

@app.route('/page/<int:page_id>')
def page(page_id):
    # Do something with page_id
    pass

答案 2 :(得分:1)

您可以将ID指定为整数:

@app.route('/page/<int:page_id>')
def page(page_id):
    # Replace with your custom code or render_template method
    return f"<h1>{page_id}</h1>"

或者如果您使用的是alpha_num ID:

@app.route('/page/<username>')
def page(username):
    # Replace with your custom code or render_template method
    return f"<h1>Welcome back {username}!</h1>"

还可以在函数中不指定任何参数,而仍然可以访问URL参数:

# for given URL such as domain.com/page?id=123

@app.route('/page')
def page():
    page_id = request.args.get("id") # 123

    # Replace with your custom code or render_template method
    return f"<h1>{page_id}</h1>"

但是,当您的FORM具有一个或多个参数时(例如:您有一个查询:

domain.com/page?cars_category=audi&year=2015&color=red

@app.route('/page')
def page():
    category = request.args.get("cars_category") # audi
    year = request.args.get("year") # 2015
    color = request.args.get("color") # red

    # Replace with your custom code or render_template method
    pass

祝你好运! :)