Flask進階
阿新 • • 發佈:2018-12-17
dir secret red rec urn req jinja2 flask 進行
Flask內的session
Flask中的session會將sessionID存放在客戶端的Cookie中
1. Flask中的session是急需要secret_key的
from flask import session app = Flask(__name__) app.secret_key = "自定義字符串"
secret_key實際上是用來加密字符串的, 如果在實例化的app中內有secret_key, 在開啟session一定會拋異常的.
2. session基本使用
@app.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": if request.form["username"] == USER["username"] and request.form["password"] == USER["password"]: session["user"] = USER["username"] return redirect("/student_list") return render_template("login.html", msg="用戶名密碼錯誤") return render_template("login.html", msg=None) # 如果前端Jinja2模板中使用了msg,這裏就算是傳遞None也要出現msg
session["user"] = USER["username"] 代表這個請求帶上來的session中保存了一個user=name
如果想要驗證session的話, 可以使用這種方法.
3. cookies中的session
cookie中的session存儲的是通過secret_key加密後的key, 通過這個key從flask程序的內存中找到
4. 使用session進行驗證.
@app.route("/student_list") def student(): if session.get("user"): return render_template("student_list.html", student=STUDENT_DICT) return redirect("/login")
Flask中的路由系統
Flask進階