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

2022-09-27 08:57:12 字數 1765 閱讀 9353

flask類有乙個redirect()方法. 當我們呼叫它時, 它會返回乙個響應物件並且按指定的狀態碼將使用者重定向到另乙個位置.

redirect()方法的原型如下:

fl程式設計客棧ask.redirect(location, statuscode, response)

在上面的函式中,

下面是一些標準的狀態碼:

重定向的狀態碼預設是302, 也就程式設計客棧是已找到(found).

在下面的例子中,redirect()方法用於當登入失敗的時候再次展示登入頁面.

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()方法, 引數包括乙個錯誤狀態碼.

flask.abort(code)

我們來對上面**中的login()函式做一點修改. 如果我們在登入失敗時不重新展示登入頁, 而是展示"未授權"頁面, 那麼我們需要把重定向那行**替換為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教程之重定向與錯誤處理例項分析

本文位址:

譯 Flask教程 重定向與錯誤

flask類有乙個redirect 方法.當我們呼叫它時,它會返回乙個響應物件並且按指定的狀態碼將使用者重定向到另乙個位置.redirect 方法的原型如下 flask.redirect location,statuscode,response 在上面的函式中,下面是一些標準的狀態碼 重定向的狀態碼...

Flask學習筆記之url for與重定向

前文中我們講到,url 路由 和函式檢視的對映關係,也就是通過對應的url,可以返回對應的檢視函式。當然我們通過檢視函式也能找到對應的url路徑,這可以通過url for來完成。接著我們講解重定向的知識點。首先,我們說說url for的意義,大家在瀏覽網頁的時候都會有跳轉,假設我們寫跳轉的時候,用u...

重定向》 與標準輸入 標準輸出 標準錯誤輸出

當linux執行乙個程式的時候,會自動開啟三個流,標準輸入 standard input 標準輸出 standard output 標準錯誤輸出 standard error 比如在開啟命令行時,預設情況下,命令列的標準輸入連線到鍵盤,標準輸出和標準錯誤都連線到螢幕,儘管三個流都開啟,但他會根據需要...