Flask_學習筆記_02: 頁面跳轉
頁面跳轉是網頁開發中需要實現的最基本的一個功能,使用者點選頁面中的一個超連結或者按鈕,就會跳轉到一個新頁面。那麼在Flask當中是如何實現的呢?
在下面的例子中,也會用到url_for(),還有另外一個redirect。目前幾乎所有的網站都需要使用者登入,才能釋出新內容或者做相關的更改。下面就以使用者要釋出一篇新文章,點擊發布文章按鈕為例,判斷如果使用者登入了,就直接跳轉到釋出新文章頁面,如果使用者沒有登入,就跳轉到登入頁面。
程式碼如下:
from flask import Flask, url_for, redirect app = Flask(__name__) @app.route("/") def index(): return "這是首頁!" @app.route("/login/") def login(): return "這是登入頁面!" @app.route("/publish_howto/<is_login>") def publish_howto(is_login): if is_login == '1': return "歡迎來到釋出howto頁面!" else: return redirect(url_for('login')) if __name__ == '__main__': app.run(debug=True)
首先要匯入url_for和redirect
然後寫一個登入頁面檢視函式:login
再寫一個釋出文章頁面:publish_howto,需要注意的是需要加一個引數,來判斷使用者是否登入,我們把引數命名為is_login,後面學了cookie之後再做程式碼優化,現在只是模擬一下,知道了這個邏輯就好。在釋出文章的檢視函式中就要判斷了,如果使用者已經登入,就留在釋出頁面,返回釋出頁面的內容給使用者;如果使用者沒有登入,就重定向到使用者登入頁面。
實際效果見下:
首先來模仿一下使用者未登入,訪問釋出文章頁面,輸入URL: http://127.0.0.1:5000/publish_howto/0 然後回車,使用者就會被重定向到登入頁面:
再來模仿一下使用者已經登入,訪問釋出文章頁面,輸入URL: http://127.0.0.1:5000/publish_howto/1 然後回車,使用者就會留在釋出文章頁面:
嗯,感覺很簡單啊!
小結:
今天的重點在: return redirect(url_for('login'))
頁面重定向要用到redirect()函式,而重定向的頁面URL,我們最好用url_for反轉得到最終的URL地址,不需要寫死URL地址,這樣的好處就是以後URL地址有變,你也不需要更改,大大減少了程式碼維護,效率得到了大大的提高啊!