1. 程式人生 > >flask學習筆記(三):URL傳參、URL反轉、重定向

flask學習筆記(三):URL傳參、URL反轉、重定向

1、URL傳參

對一個固定頁面下傳入url引數。需要給定一個id,並且使用<id>傳參,這樣才能返回一個值。

#-*- coding:utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route("/")
def HelloWorld():
    return "HelloWorld!"

@app.route("/urlParams/<id>")
def urlParams(id):
    return "Your Params is %s !" % id

if __name__ == "__main__":
    app.run()

在位址列隨便輸入一個引數123得到:

2、URL反轉

想實現url反轉需要匯入模組url_for,並且已經知道要找的url對應的函式的名稱。例如定義了一個pig函式,要找pig的url。

#-*- coding:utf-8 -*-
from flask import Flask, url_for

app = Flask(__name__)

@app.route("/")
def HelloWorld():
    print url_for("pig")
    print url_for("urlParams", id="1234")
    return "HelloWorld!"

@app.route("/pig/")
def pig():
    return "pig"

@app.route("/urlParams/<id>")
def urlParams(id):
    return "Your Params is %s !" % id

if __name__ == "__main__":
    app.run()

重新整理網頁後會發現終端列印了:

3、重定向

想實現url反轉需要匯入模組redirect。例如要訪問預設主頁但是會被重定向到pig頁。注意,引數要寫路由地址。

#-*- coding:utf-8 -*-
from flask import Flask, url_for, redirect

app = Flask(__name__)

@app.route("/")
def HelloWorld():
    return redirect("/pig/")
    return "HelloWorld!"

@app.route("/pig/")
def pig():
    return "pig"


if __name__ == "__main__":
    app.run()

訪問主頁會自動跳轉到pig頁

但是這種辦法一旦url修改了,就可能因為要修改的地方太多導致出現錯誤。所以應該採用第二種辦法:(借用url反轉)

#-*- coding:utf-8 -*-
from flask import Flask, url_for, redirect

app = Flask(__name__)

@app.route("/")
def HelloWorld():
    pig_url = url_for("pig")
    return redirect(pig_url)
    return "HelloWorld!"

@app.route("/pig/")
def pig():
    return "pig"


if __name__ == "__main__":
    app.run()

這樣即便修改url地址就只修改@app.route("/pig")一處即可。

PS:重定向多用於是否login