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中l(wèi)ist列表的賦值方法及遇到問(wèn)題處理
這篇文章主要介紹了Python中l(wèi)ist列表的賦值方法及遇到問(wèn)題處理,記錄在列表list的賦值過(guò)程中遇到的問(wèn)題,并對(duì)列表的拷貝相關(guān)知識(shí)進(jìn)行匯總,需要的朋友可以參考一下2022-03-03Python在字典中獲取帶權(quán)重的隨機(jī)值實(shí)現(xiàn)方式
這篇文章主要介紹了Python在字典中獲取帶權(quán)重的隨機(jī)值,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11python實(shí)現(xiàn)類之間的方法互相調(diào)用
下面小編就為大家分享一篇python實(shí)現(xiàn)類之間的方法互相調(diào)用,具有很的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例
今天小編就為大家分享一篇python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12vscode autopep8無(wú)法格式化python代碼問(wèn)題解決
這篇文章主要為大家介紹了vscode autopep8無(wú)法格式化python代碼問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Django關(guān)于admin的使用技巧和知識(shí)點(diǎn)
在本篇文章里小編給大家整理的是關(guān)于Django的admin簡(jiǎn)單使用的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以跟著學(xué)習(xí)下。2020-02-02python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解
本文給大家分享的是python內(nèi)置函數(shù)breakpoint()與bytearray()的相關(guān)資料,并給大家附上了詳細(xì)代碼,有需要的小伙伴可以參考下2017-04-04Python中如何使用Matplotlib庫(kù)繪制圖形
Matplotlib是一個(gè)Python的2D繪圖庫(kù),通過(guò)Matplotlib開發(fā)者可以僅需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯(cuò)誤圖,散點(diǎn)圖等,這篇文章主要給大家介紹了Python中如何使用Matplotlib庫(kù)繪制圖形的相關(guān)資料2022-07-07Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法
這篇文章主要介紹了Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法,涉及Python日期與時(shí)間計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-05-05