這個模組能幫助我們做很多事,最常用到的是,登陸驗證(驗證當前使用者是否已經登陸)、記住我功能
一 安裝
pip install flask-login
二 匯入相關模組及物件並初始化
from flask_login importlogin_manager, usermixin
login_manager_local =login_manager.loginmanager()
login_manager_local.session_protection = '
strong
'login_manager_local.login_view = 'login'
三 使用
1、定義乙個user類
#繼承db.model 是為了方便運算元據庫
class
user(db.model, usermixin):
__tablename__ = '
users
'id = db.column(db.integer, autoincrement=true, primary_key=true)
username = db.column(db.string(20), unique=true, index=true)
pwd_hash = db.column(db.string(300))
def__init__
(self, username, pwd):
self.username =username
self.pwd =pwd
@staticmethod
defquery_by_username(username):
return user.query.filter(user.username ==username).first()
@property
defpwd(self):
raise attributeerror(u'
密碼不可讀')
@pwd.setter
defpwd(self, pwd):
self.pwd_hash =generate_password_hash(pwd)
defverify_password(self, pwd):
return
check_password_hash(self.pwd_hash, pwd)
def__repr__
(self):
return
'' % self.username
2、登陸
使用login_user登陸user後就可以使用登陸驗證@login_required
/login
', methods=['
get', '
post'])
deflogin():
if request.method == '
get'
: form =loginform()
return render_template('
login.html
', form=form)
else
: form =loginform(request.form)
ifform.validate():
username = request.form['
name']
pwd = request.form['
pwd'
] user =user.query_by_username(username)
if user and
user.verify_password(pwd):
login_user(user)
return
'login ok
'else
:
(form.errors)
return render_template('
login.html
', form=form)
4、登陸驗證/'
)@login_required
defhello_world():
raise
customflaskerr(d_ip_mask_format_error)
raise customflaskerr(payload=)
flask學習之加密策略,flask自帶
返回加密後密碼 property def password self return self.password hash 傳入密碼 password.setter def password self,value 對密碼簽名 self.password hash generate password h...
flask之session cookie摘抄筆記
摘抄自 cookie和session使用 一 儲存在服務端 通過cookie儲存乙個session id,然後具體的資料則是儲存在session中,如果使用者已經登入,則伺服器會在cookie中儲存乙個session id,下次再次請求的時候,會把該session id攜帶上來,伺服器根據sessi...
Flask之Flask Script 擴充套件
這個模組的作用可以讓我們通過終端來控制flask專案的執行 安裝命令 pip install flask script i整合 flask script到flask應用中,建立乙個主應用程式,一般我們叫manage.py run.py main.py都行。from flask import flas...