快速添加數據python
在基礎數據模型中,添加一個set__attrs方法,當添加數據時 ,使用模型對象掉用改方法,傳入數據便可.---例: 表單提交時, 傳入 form.data 再db.session.add(模型對象),最後db.session.commit() 提交便可。git
def set_attrs(self, form_data): # 添加數據 / 只能在表單name與字段名相同時能夠使用該方法 from apps.cms.verify_view import set_password for k, v in form_data.items(): if hasattr(self, k) and k != 'id': if k != 'password': setattr(self, k, v) else: # 對密碼進行加密 setattr(self, k, set_password(v))
數據字典化( 強轉字典 )程序員
若是視圖中沒有定義keys方法,將不能進行字典化json
class Dishes_Class_Model(BaseModel): name = db.Column(db.String(length=16), comment='名稱') type_accumulation = db.Column(db.String(length=50), comment='菜品編號') merchant_id = db.Column(db.INT, comment='所屬商家ID') shop_id = db.Column(db.INT, comment='所屬店鋪ID') description = db.Column(db.String(length=250), comment='描述') is_default = db.Column(db.Boolean, default=False, comment='是不是默認分類') category_id = db.Column(db.String(16), comment='分類UUID') def keys(self): # 返回相應字段(大前提) return 'name', 'type_accumulation', 'shop_id', 'description', 'is_default'
使用__getitem__魔術方法,item參數傳入一個可迭代類型的keys後端
# 強轉字典 def __getitem__(self, item): if hasattr(self, item): return getattr(self, item)
密碼哈希加鹽及驗證:api
from werkzeug.security import generate_password_hash, check_password_hash # 哈希加鹽的密碼方式 def set_password(password): return generate_password_hash(password=password, method='pbkdf2:sha256', salt_length=32) # 哈希驗證密碼的方式 def check_password(set_password, password): return check_password_hash(pwhash=set_password, password=password) # 驗證成功返回True
使用 set_password(password) 方法對鍵入的字符串哈希化瀏覽器
返回結果: pbkdf2:sha256:50000$vVSMhPMPZIpj6BsIk9r5rQbGwRA6bhGE$8e1e7e0c8eb8c1007120eb491617afe09f022d2175ad78e400316052b1b7d3ae
使用 check_password(哈希後的值,鍵入的字符串) 進行校驗,校驗成功返回True,反之Flase服務器
repr 與__str__ 的區別:cookie
def __repr__(self): return self.goods_name #**********************************************# def __str__(self): return self.goods_name
相同點:session
這兩個方法都是用於顯示的,__str__是面向用戶的,而__repr__面向程序員。
不一樣點:
str 是針對print打印,只有print打印出結果,__repr__調用對象是,將打印返回值
獲取配置信息:
current_app.config.get('SESSION_REDIS')
RESTful api標準___使用名詞做爲資源信息
使用HTTP請求的方式做爲資源的操做動詞[GET| POST | PUT/PATCH |DELETE]
請求必須經過json進行數據的給與響應也經過json格式反饋
cookie session
Basic Auth ( 請求: Authorization: 用戶:密碼 base64的編碼 )
HTTP 明文傳輸 HTTPS服務進行數據傳輸
cookie:
瀏覽器
服務器經過響應的set_cookie
瀏覽器在請求時: cookie:xxx
APP:
服務器把token值傳給客戶端,跟客戶約定一個協議,讓客戶端來存儲
客服端在須要權限的API接口訪問時,把存儲的token值一塊兒挾帶過來
JWT的格式
JSON格式
{"uid":101} + 簽名的行爲 {"uid":101} + 密鑰的簽名
{"uid":102} + 密鑰的簽名