Flask教程之重定向與錯誤處理實例分析
本文實例講述了Flask教程之重定向與錯誤處理。分享給大家供大家參考,具體如下:
Flask類有一個redirect()
方法. 當我們調(diào)用它時, 它會返回一個響應對象并且按指定的狀態(tài)碼將用戶重定向到另一個位置.
redirect()
方法的原型如下:
Flask.redirect(location, statuscode, response)
在上面的函數(shù)中,
- location 我們要重定向的URL位置
- statuscode 狀態(tài)碼會在http頭中發(fā)送給瀏覽器, 默認為302
- response 用這個參數(shù)來初始化響應對象
下面是一些標準的狀態(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)碼默認是302, 也就是已找到(found).
在下面的例子中, redirect()
方法用于當?shù)卿浭〉臅r候再次展示登錄頁面.
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類有個abort()
方法, 參數(shù)包括一個錯誤狀態(tài)碼.
Flask.abort(code)
- 400 錯誤請求
- 401 未授權請求
- 403 禁止
- 404 找不到資源
- 406 不可接受
- 415 未知媒體類型
- 429 太多請求
我們來對上面代碼中的login()
函數(shù)做一點修改. 如果我們在登錄失敗時不重新展示登錄頁, 而是展示"未授權"頁面, 那么我們需要把重定向那行代碼替換為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)
希望本文所述對大家基于flask框架的Python程序設計有所幫助。
- python flask中動態(tài)URL規(guī)則詳解
- Flask框架URL管理操作示例【基于@app.route】
- Flask框架重定向,錯誤顯示,Responses響應及Sessions會話操作示例
- python flask框架實現(xiàn)重定向功能示例
- Python使用Flask框架獲取當前查詢參數(shù)的方法
- flask框架藍圖和子域名配置詳解
- flask框架渲染Jinja模板與傳入模板變量操作詳解
- Python的Flask框架中@app.route的用法教程
- Python的Flask框架中web表單的教程
- Python的Flask框架中的Jinja2模板引擎學習教程
- flask框架url與重定向操作實例詳解
相關文章
Python中l(wèi)ist列表的賦值方法及遇到問題處理
這篇文章主要介紹了Python中l(wèi)ist列表的賦值方法及遇到問題處理,記錄在列表list的賦值過程中遇到的問題,并對列表的拷貝相關知識進行匯總,需要的朋友可以參考一下2022-03-03python實現(xiàn)類之間的方法互相調(diào)用
下面小編就為大家分享一篇python實現(xiàn)類之間的方法互相調(diào)用,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04vscode autopep8無法格式化python代碼問題解決
這篇文章主要為大家介紹了vscode autopep8無法格式化python代碼問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解
本文給大家分享的是python內(nèi)置函數(shù)breakpoint()與bytearray()的相關資料,并給大家附上了詳細代碼,有需要的小伙伴可以參考下2017-04-04Python根據(jù)指定日期計算后n天,前n天是哪一天的方法
這篇文章主要介紹了Python根據(jù)指定日期計算后n天,前n天是哪一天的方法,涉及Python日期與時間計算相關操作技巧,需要的朋友可以參考下2018-05-05