因為flask自帶的session是將session存在cookie中;
所以才有了第三方flask_session外掛程式,可以將session儲存在我們想儲存的資料庫中(redis等)
pip install flask-session注意redis資料庫一定是在內網中的且是一台單獨的伺服器,防止被攻擊
from flask import flask,session,request,render_templatefrom flask_session import session # 匯入第三方外掛程式
import redis # 匯入redis模組,操作redis資料庫的模組
# 指定什麼資料庫
# 指定資料庫的ip埠用哪個倉庫儲存及資料庫密碼,db表示redis的倉庫[0-15]通過select切換,用做資料隔離
# 設定session過期時間,預設31天,
def login():
if request.method=="get":
return render_template("login.html")
else:
# 設定session,儲存在redis資料庫中,注意設定session用的是redis自帶的session模組
session["username"] = 2222
# 直接從redis資料庫中檢視session值
uname = session.get("username") # 2222
return "200 ok"
if __name__ == '__main__':
其他session設定12
3123
4567
891011
1213
1415
1617
# session的型別
config.setdefault(
'session_type'
,
'null'
)
# 在設定了session.permanent =true 後,它也會被儲存在cookie中,
# key 是 _permanent,如果不清除這個cookie,即使你在以後沒有設定為true,
# session也會被從cookie 中的值設定為true的
config.setdefault(
'session_permanent'
,
true
)
# 是否對傳送到瀏覽器上 session:cookie值進行加密
config.setdefault(
'session_use_signer'
,
false
)
# 儲存到session中的值的字首
config.setdefault(
'session_key_prefix'
,
'session:'
)
# 檔案路徑
config.setdefault(
'session_file_dir'
,
os.path.join(os.getcwd(),
'flask_session'
))
# 儲存session的個數如果大於這個值時,就要開始進行刪除了
config.setdefault(
'session_file_threshold'
,
500
)
# 檔案許可權型別
通過前端的session key查詢儲存在資料庫中的session
import redis,pickle
r = redis.redis(host="192.168.16.16",port=6380,db=6,password="123")
a = r.get("session:22d30ca0-323e-4244-b8de-831c8f964bc1")
# 查詢出來的值是序列化後的,我們需要進行反序列化檢視原始的值
藍圖
from flask import blueprint,render_template,request,session程式啟動入口from flask import views
user = blueprint("user",__name__) # 引數user表示藍圖唯一標識不能重複,例項化乙個藍圖(blueprint)物件
class user(views.methodview):
def get(self):
return render_template("login.html")
def post(self):
username = request.form.get("username")
password = request.form.get("password")
if username == "henry" and password == "123456":
# 設定session
session["username"] = "henry"
uname = session.get("username")
print(uname)
return "200 ok"
else:
return "404"
user.add_url_rule("/login",view_func=user.as_view(name="login"))
from flask import flask
from use.uses import uses # 匯入藍圖例項
from redis import redis
from flask_session import session # 匯入session第三方外掛程式
# 指定什麼資料庫
# 指定資料庫的ip埠用哪個倉庫儲存及資料庫密碼,redis的倉庫[0-15]通過select切換
# 註冊藍圖
if __name__ == '__main__':
redis儲存如下:
flask資料遷移之第三方外掛程式實現
由於flask是基於輕量級的框架,沒有向django那麼龐大的功能,因此,其本身無法實現django那種migrate資料遷移的方式,鑑於此,flask可以採用第三方的擴充套件元件來實現。需要新增兩個元件flask script flask migrate 新增指令碼外掛程式,在指令碼外掛程式新增指...
Lua第三方外掛程式列表
下面的這些內容不包含在本文中 官方的lua包和文件 參看 涉及到lua使用但不是被lua使用者普遍使用的東西 參看 uses.html 本wiki已經存在的內容 參看 luadirectory librariesandbindings lua的使用列表 1 see also luaeditorsup...
VUE引入第三方外掛程式
vue 引入第三方外掛程式方法 1 如果是第三方 npm 模組檔案 檔案統一放入src assets js 資料夾下 統一在main.js 內引入 import parse from assets js plugin.js import assets js plugin.js 2 如果是第三方非 n...