Flask教程之重定向與錯(cuò)誤處理實(shí)例分析
本文實(shí)例講述了Flask教程之重定向與錯(cuò)誤處理。分享給大家供大家參考,具體如下:
Flask類有一個(gè)redirect()方法. 當(dāng)我們調(diào)用它時(shí), 它會(huì)返回一個(gè)響應(yīng)對(duì)象并且按指定的狀態(tài)碼將用戶重定向到另一個(gè)位置.
redirect()方法的原型如下:
Flask.redirect(location, statuscode, response)
在上面的函數(shù)中,
- location 我們要重定向的URL位置
- statuscode 狀態(tài)碼會(huì)在http頭中發(fā)送給瀏覽器, 默認(rèn)為302
- response 用這個(gè)參數(shù)來(lái)初始化響應(yīng)對(duì)象
下面是一些標(biāo)準(zhǔn)的狀態(tài)碼:
- HTTP_300_MULTIPLE_CHOICES
- HTTP_301_MOVED_PERMANENTLY
- HTTP_302_FOUND
- HTTP_303_SEE_OTHER
- HTTP_304_NOT_MODIFIED
- HTTP_305_USE_PROXY
- HTTP_306_RESERVED
- HTTP_307_TEMPORARY_REDIRECT
重定向的狀態(tài)碼默認(rèn)是302, 也就是已找到(found).
在下面的例子中, redirect()方法用于當(dāng)?shù)卿浭〉臅r(shí)候再次展示登錄頁(yè)面.
from flask import Flask, redirect, url_for, render_template, request
# Initialize the Flask application
app = Flask(__name__)
@app.route('/')
def index():
return render_template('log_in.html')
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST' and
request.form['username'] == 'admin' :
return redirect(url_for('success'))
return redirect(url_for('index'))
@app.route('/success')
def success():
return 'logged in successfully'
if __name__ == '__main__':
app.run(debug = True)
Flask類有個(gè)abort()方法, 參數(shù)包括一個(gè)錯(cuò)誤狀態(tài)碼.
Flask.abort(code)
- 400 錯(cuò)誤請(qǐng)求
- 401 未授權(quán)請(qǐng)求
- 403 禁止
- 404 找不到資源
- 406 不可接受
- 415 未知媒體類型
- 429 太多請(qǐng)求
我們來(lái)對(duì)上面代碼中的login()函數(shù)做一點(diǎn)修改. 如果我們?cè)诘卿浭r(shí)不重新展示登錄頁(yè), 而是展示"未授權(quán)"頁(yè)面, 那么我們需要把重定向那行代碼替換為abort(401).
from flask import Flask, redirect, url_for, render_template, request, abort
app = Flask(__name__)
@app.route('/')
def index():
return render_template('log_in.html')
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
if request.form['username'] == 'admin' :
return redirect(url_for('success'))
else:
abort(401)
else:
return redirect(url_for('index'))
@app.route('/success')
def success():
return 'logged in successfully'
if __name__ == '__main__':
app.run(debug = True)
希望本文所述對(duì)大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
- python flask中動(dòng)態(tài)URL規(guī)則詳解
- Flask框架URL管理操作示例【基于@app.route】
- Flask框架重定向,錯(cuò)誤顯示,Responses響應(yīng)及Sessions會(huì)話操作示例
- python flask框架實(shí)現(xiàn)重定向功能示例
- Python使用Flask框架獲取當(dāng)前查詢參數(shù)的方法
- flask框架藍(lán)圖和子域名配置詳解
- flask框架渲染Jinja模板與傳入模板變量操作詳解
- Python的Flask框架中@app.route的用法教程
- Python的Flask框架中web表單的教程
- Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程
- flask框架url與重定向操作實(shí)例詳解
相關(guān)文章
python實(shí)時(shí)分析日志的一個(gè)小腳本分享
這篇文章主要給大家分享了一個(gè)實(shí)時(shí)分析日志的python小腳本,文中給出了詳細(xì)的介紹和示例代碼供大家參考學(xué)習(xí),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
python PrettyTable模塊的安裝與簡(jiǎn)單應(yīng)用
prettyTable 是一款很簡(jiǎn)潔但是功能強(qiáng)大的第三方模塊,主要是將輸入的數(shù)據(jù)轉(zhuǎn)化為格式化的形式來(lái)輸出,這篇文章主要介紹了python PrettyTable模塊的安裝與簡(jiǎn)單應(yīng)用,感興趣的小伙伴們可以參考一下2019-01-01
python的urllib.parse用法及說(shuō)明
這篇文章主要介紹了python的urllib.parse用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班
這篇文章主要為大家介紹了python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天下早班實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python實(shí)現(xiàn)的用戶登錄系統(tǒng)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的用戶登錄系統(tǒng)功能,涉及Python流程控制及字符串判斷等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
python實(shí)現(xiàn)用類讀取文件數(shù)據(jù)并計(jì)算矩形面積
今天小編就為大家分享一篇python實(shí)現(xiàn)用類讀取文件數(shù)據(jù)并計(jì)算矩形面積,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
解決Jupyter notebook中.py與.ipynb文件的import問題
這篇文章主要介紹了解決Jupyter notebook中.py與.ipynb文件的import問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python-re中search()函數(shù)的用法詳解(查找ip)
這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

