Flask學(xué)習(xí)筆記之url_for與重定向

大綱

前文中我們講到,url(路由)和函數(shù)視圖的映射關(guān)系,也就是通過對(duì)應(yīng)的url,可以返回對(duì)應(yīng)的視圖函數(shù)。當(dāng)然我們通過視圖函數(shù)也能找到對(duì)應(yīng)的url路徑,這可以通過url_for來完成。接著我們講解重定向的知識(shí)點(diǎn)。

  • url_for
  • 重定向

url_for

首先,我們說說url_for的意義,大家在瀏覽網(wǎng)頁的時(shí)候都會(huì)有跳轉(zhuǎn),假設(shè)我們寫跳轉(zhuǎn)的時(shí)候,用url路徑,當(dāng)整個(gè)網(wǎng)站路徑需要修改時(shí),就需要更改這些代碼,如果我們使用的是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

重定向

重定向分為永久性重定向和暫時(shí)性重定向,在頁面上體現(xiàn)的操作就是瀏覽器會(huì)從一個(gè)頁面自動(dòng)跳轉(zhuǎn)到另外一個(gè)頁面。比如用戶訪問了一個(gè)需要權(quán)限的頁面,但是該用戶當(dāng)前并沒有登錄,因此我們應(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 '個(gè)人中心頁面'
    else:
        # redirect 重定向
        return redirect(url_for('login'))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容