資料庫中直接存放明文密碼是很危險的,werkzeug庫中的security能夠方便的實現雜湊密碼的計算
security庫中 generate_password_hash(password,method...)函式將原始密碼作為輸入,以字串形式輸出密碼的雜湊值
check_password_hash(hash,password)函式檢查給出的hash密碼與明文密碼是否相符
from werkzeug.security importcheck_password_hash,generate_password_hash
class
user(db.model):
id = db.column(db.integer, primary_key=true)
username = db.column(db.string(64),unique=true)
password_hash = db.column(db.string(128))
#不能讀取
@property
defpassword(self):
raise
"you cant read it"#
使用user.password='asda'設定時存入生成的雜湊密碼
@password.setter
defpassword(self, password):
self.password_hash =generate_password_hash(password)
defcheck_password_hash(self,password):
return check_password_hash(self.password_hash, password)
需要驗證密碼時就只需呼叫user類的check_password_hash(self,password)方法,如果返回true則進行下一步操作
Flask學習記錄之Flask Migrate
from flask.ext.migrate importmigrate,migratecommand 第乙個引數是flask的例項,第二個引數是sqlalchemy資料庫例項 manager.add command db migratecommand manaer 是flask script的例項...
Docker學習記錄之Flask轉docker
今天小夥伴把乙個pythonweb的題轉docker,過程中出現了一些問題,我也搞了好久,這裡記錄一下吧。新手上路,大神勿噴。雖然這不是bug,但是我還是想提一句,如果up的服務沒有異常卻不知道 出了問題,可以exec進去看看,改 或者安裝什麼東西,最好把運維需要的命令都在dockerfile裡面寫...
Flask工廠函式使用記錄
flask工廠函式 我的目錄結構flask project config init py config.py settings.py manage.py基本示例定義工廠函式 from flask import flask from config.settings import config from...