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 未授權(quán)請求
- 403 禁止
- 404 找不到資源
- 406 不可接受
- 415 未知媒體類型
- 429 太多請求
我們來對上面代碼中的login()函數(shù)做一點修改. 如果我們在登錄失敗時不重新展示登錄頁, 而是展示"未授權(quán)"頁面, 那么我們需要把重定向那行代碼替換為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實現(xiàn)的用戶登錄系統(tǒng)功能示例
這篇文章主要介紹了Python實現(xiàn)的用戶登錄系統(tǒng)功能,涉及Python流程控制及字符串判斷等相關操作技巧,需要的朋友可以參考下2018-02-02
python實現(xiàn)用類讀取文件數(shù)據(jù)并計算矩形面積
今天小編就為大家分享一篇python實現(xiàn)用類讀取文件數(shù)據(jù)并計算矩形面積,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
解決Jupyter notebook中.py與.ipynb文件的import問題
這篇文章主要介紹了解決Jupyter notebook中.py與.ipynb文件的import問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python-re中search()函數(shù)的用法詳解(查找ip)
這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

