1. 程式人生 > >Flask進階

Flask進階

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進階