我是 Flask 的新手,需要一些關于在 HTML 表單中使用 GET 和 POST 方法的指導。我知道 POST 方法在向服務器發送資料時提供了更高的安全性,而在 GET 方法中,表單輸入在 URL 中傳遞并且是可見的。但是,我最近遇到了一個示例,其中兩種方法都以相同的形式使用,我試圖了解以相同的形式定義兩種方法的實用性。
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)
在陳述句中if request.method == 'POST':,為什么我們需要條件檢查?填寫表單的用戶是否有可能選擇使用 GET 而不是 POST 方法?
uj5u.com熱心網友回復:
加載表單和用戶輸入登錄資料并提交表單時使用相同的路由。
例如,在網站首頁,用戶點擊登錄按鈕,后面的網址是/login。這是一個GET請求并加載帶有登錄表單的登錄頁面。
用戶然后輸入他們的用戶名和密碼并點擊登錄或提交。這會將表單提交到相同的 url,即/login但這一次,請求是POST. 當 Flask 看到這是一個POST請求時,它會查找用戶名和密碼
uj5u.com熱心網友回復:
這是通常在flask/web 開發中常用的東西。檢查請求方法使您能夠同時使用路由
- 顯示頁面
- 提交表格
這使得路由更清晰,因為您并不總是需要用于呈現表單和提交表單的路由,并且您的代碼不會變得太混亂。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/355660.html
