成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

[譯]Flask教程--重定向與錯(cuò)誤

leap_frog / 1110人閱讀

摘要:類(lèi)有一個(gè)方法當(dāng)我們調(diào)用它時(shí)它會(huì)返回一個(gè)響應(yīng)對(duì)象并且按指定的狀態(tài)碼將用戶重定向到另一個(gè)位置方法的原型如下在上面的函數(shù)中我們要重定向的位置狀態(tài)碼會(huì)在頭中發(fā)送給瀏覽器默認(rèn)為用這個(gè)參數(shù)來(lái)初始化響應(yīng)對(duì)象下面是一些標(biāo)準(zhǔn)的狀態(tài)碼重定向的狀態(tài)碼默認(rèn)是也就是

Flask類(lèi)有一個(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類(lèi)有個(gè)abort()方法, 參數(shù)包括一個(gè)錯(cuò)誤狀態(tài)碼.

Flask.abort(code)

400 錯(cuò)誤請(qǐng)求

401 未授權(quán)請(qǐng)求

403 禁止

404 找不到資源

406 不可接受

415 未知媒體類(lèi)型

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)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40903.html

相關(guān)文章

  • []如何使用Flask開(kāi)發(fā)一個(gè)增刪改查的應(yīng)用(part2)

    摘要:獲取成為開(kāi)發(fā)專(zhuān)家的技巧。我們可以在兩個(gè)文本框輸入筆記的標(biāo)題和內(nèi)容。在本教程中,我們將使用一個(gè)名為的工具。它是一個(gè)火狐瀏覽器的擴(kuò)展,我們可以使用它管理數(shù)據(jù)庫(kù)。安裝,打開(kāi)火狐瀏覽器,點(diǎn)擊,然后點(diǎn)找到的文件夾圖標(biāo)并點(diǎn)擊它。 showImg(https://cdn-images-1.medium.com/max/600/1*Ou6FFJJD3zhcIUU8wBZqIw.png); 教程譯文首發(fā)...

    adam1q84 評(píng)論0 收藏0
  • [] Flask教程--會(huì)話

    摘要:跟不同會(huì)話數(shù)據(jù)存儲(chǔ)于服務(wù)器上會(huì)話是指一個(gè)客戶在一個(gè)服務(wù)上從登錄到注銷(xiāo)之間的時(shí)間段會(huì)話中需要存儲(chǔ)的會(huì)話數(shù)據(jù)儲(chǔ)存在服務(wù)器上的一個(gè)臨時(shí)目錄中每個(gè)會(huì)話都被分配了一個(gè)會(huì)話會(huì)話數(shù)據(jù)以的形式存儲(chǔ)并且服務(wù)器會(huì)把會(huì)話數(shù)據(jù)進(jìn)行加密為了進(jìn)行這樣的加密應(yīng)用需要定義 跟Cookie不同, 會(huì)話(Session)數(shù)據(jù)存儲(chǔ)于服務(wù)器上. 會(huì)話是指一個(gè)客戶在一個(gè)web服務(wù)上從登錄到注銷(xiāo)之間的時(shí)間段. 會(huì)話中需要存儲(chǔ)的會(huì)...

    microelec 評(píng)論0 收藏0
  • Flask Web Development —— Web表單(下)

    摘要:局部變量用于保存從表單中接收到的名字,初始化時(shí)變量為。在語(yǔ)句中,這個(gè)名字被賦值給局部變量且表單域的數(shù)據(jù)屬性通過(guò)賦值為空字符串而被清除。示例重定向和用戶會(huì)話在上一個(gè)版本中,局部變量用于保存用戶在表單中輸入的姓名。 4、視圖函數(shù)中的表單操作 在新版本的hello.py中,index()視圖函數(shù)渲染表單并接收其數(shù)據(jù)。示例4-4展示更新后的index()視圖函數(shù)。 示例4-4. hello...

    yeooo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<