摘要:類(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
摘要:獲取成為開(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ā)...
摘要:跟不同會(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ì)...
摘要:局部變量用于保存從表單中接收到的名字,初始化時(shí)變量為。在語(yǔ)句中,這個(gè)名字被賦值給局部變量且表單域的數(shù)據(jù)屬性通過(guò)賦值為空字符串而被清除。示例重定向和用戶會(huì)話在上一個(gè)版本中,局部變量用于保存用戶在表單中輸入的姓名。 4、視圖函數(shù)中的表單操作 在新版本的hello.py中,index()視圖函數(shù)渲染表單并接收其數(shù)據(jù)。示例4-4展示更新后的index()視圖函數(shù)。 示例4-4. hello...
閱讀 2952·2023-04-25 19:20
閱讀 814·2021-11-24 09:38
閱讀 2066·2021-09-26 09:55
閱讀 2443·2021-09-02 15:11
閱讀 2075·2019-08-30 15:55
閱讀 3621·2019-08-30 15:54
閱讀 3159·2019-08-30 14:03
閱讀 2972·2019-08-29 17:11