我正在嘗試使用 Flask 構建一個小型的多頁 Web 應用程式。到目前為止,我的應用程式由兩條獨立的路線組成。第一個路由呈現一個觸發 api 請求的小型網路表單,該請求生成每個用戶和會話唯一的資料。資料帶有每個 api 回應的唯一 ID。第二條路線用于顯示每個用戶的唯一結果。如何為每個執行緒安全的用戶創建單獨的結果頁面,并確保任何其他用戶都無法訪問資料?
偽代碼:
from flask import Flask, render_template, redirect
app = Flask(__name__)
# A simple webform
@app.route('/', methods=['GET', 'POST'])
def view_form():
if request.method == "POST":
# Validate form and perform api request
return redirect(url_for('view_results'))
return render_template('main.html')
# Results page
@app.route('/results', methods=['GET'])
def view_results():
# Show an individual results page
return render_template('results.html')
uj5u.com熱心網友回復:
這個問題很廣泛。這是如何實作它的方式的音調。
更接近的示例將如下所示:
from flask import Flask, render_template, redirect
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def view_form():
if request.method == "POST":
# get user id to be able redirect to specific results page
user_id = request.form.get('user_id')
# redirect to page for exact user_id
return redirect(url_for('view_results/' user_id))
return render_template('main.html')
@app.route('/results/<user_id>', methods=['GET'])
def view_results(user_id=None):
# Show an individual results according user_id
if user_id == 'blahblah':
return render_template('results_for_blahblah.html')
# if user_id is None return a standard dummy results
return render_template('results.html')
user_id從請求表單資料中獲取- 使用
user_id查詢引數重定向到新 URL - 回應為特定用戶專門生成的模板
user_id
uj5u.com熱心網友回復:
為了在您的應用程式處理用戶和他們的會話時具有一定的安全性,您應該查看flask 插件 Flask-Login。
我建議您還查看 Miguel Grinberg 的 The Flask Mega-Tutorial 和 OWASP 的指南。
此外,原則上永遠不要像 rzlvmp 的回應那樣信任用戶輸入。它可能是為了從您的站點竊取其他人的私人資料而捏造的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/349232.html
