亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flask教程之重定向與錯誤處理實例分析

 更新時間:2019年08月01日 10:36:24   作者:EthanSun  
這篇文章主要介紹了Flask教程之重定向與錯誤處理,結合實例形式分析了flask框架重定向、狀態(tài)碼判斷及錯誤處理相關操作技巧,需要的朋友可以參考下

本文實例講述了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程序設計有所幫助。

相關文章

最新評論