欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flask教程之重定向與錯(cuò)誤處理實(shí)例分析

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

本文實(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ì)有所幫助。

相關(guān)文章

最新評(píng)論