大綱
前文中我們講到鸳谜,url(路由)和函數(shù)視圖的映射關(guān)系饵溅,也就是通過對應(yīng)的url赫冬,可以返回對應(yīng)的視圖函數(shù)并巍。當然我們通過視圖函數(shù)也能找到對應(yīng)的url路徑,這可以通過url_for來完成换途。接著我們講解重定向的知識點懊渡。
- url_for
- 重定向
url_for
首先,我們說說url_for的意義军拟,大家在瀏覽網(wǎng)頁的時候都會有跳轉(zhuǎn)剃执,假設(shè)我們寫跳轉(zhuǎn)的時候,用url路徑懈息,當整個網(wǎng)站路徑需要修改時肾档,就需要更改這些代碼,如果我們使用的是url_for的話辫继,修改量就很少(通常視圖函數(shù)是不修改的)怒见。
接著,我們看看url_for的使用:
@app.route('/post/list/<page>/')
def my_list(page):
return 'my list'
print(url_for('my_list',page=1,count=2))
# 構(gòu)建出來的url:/my_list/1/?count=2
重定向
重定向分為永久性重定向和暫時性重定向姑宽,在頁面上體現(xiàn)的操作就是瀏覽器會從一個頁面自動跳轉(zhuǎn)到另外一個頁面遣耍。比如用戶訪問了一個需要權(quán)限的頁面,但是該用戶當前并沒有登錄炮车,因此我們應(yīng)該給他重定向到登錄頁面舵变。
具體操作如下:
from flask import Flask,request,redirect,url_for
app = Flask(__name__)
@app.route('/login/')
def login():
return '這是登錄頁面'
@app.route('/profile/')
def profile():
if request.args.get('name'):
return '個人中心頁面'
else:
# redirect 重定向
return redirect(url_for('login'))