Flask 第三方外掛程式

2022-09-18 12:09:15 字數 3796 閱讀 2845

因為flask自帶的session是將session存在cookie中;

所以才有了第三方flask_session外掛程式,可以將session儲存在我們想儲存的資料庫中(redis等)

pip install flask-session
注意redis資料庫一定是在內網中的且是一台單獨的伺服器,防止被攻擊

from flask import flask,session,request,render_template

from 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...