flask學習筆記(三):URL傳參、URL反轉、重定向
阿新 • • 發佈:2019-02-17
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