日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【Flask项目2】创建模型类映射到数据库,密码加密实现(3)

發布時間:2025/3/21 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Flask项目2】创建模型类映射到数据库,密码加密实现(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶模型類

comment—models—user.py

from comment.models import db from werkzeug.security import generate_password_hash,check_password_hash from datetime import datetimeclass User(db.Model):__tablename__ = 't_user'id = db.Column(db.BIGINT, primary_key=True, autoincrement=True)username = db.Column(db.String(64), comment='用戶名')password = db.Column(db.String(128), comment='密碼')payPassword = db.Column(db.String(128), comment='支付密碼')payPwdStatus = db.Column(db.Integer, comment='支付密碼驗證', default=0)email = db.Column(db.String(100), comment='郵箱')emailStatus = db.Column(db.Integer, comment='郵箱驗證', default=0) # 1代表已經驗證inviteId = db.Column(db.Integer, comment='邀請碼')ip = db.Column(db.String(128), comment='ip')phone = db.Column(db.String(11), comment='手機號')onlock = db.Column(db.Integer, comment='用戶狀態') # 0代碼正常phoneStatus = db.Column(db.Integer, comment='手機驗證', default=1) # # 1代表已經驗證realName = db.Column(db.String(64), comment='真實姓名')remark = db.Column(db.String(500), comment='備注')realNameStatus = db.Column(db.Integer, comment='實名認證', default=0) # 1代表已認證nick_name = db.Column(db.String(200), comment='昵稱')avatar = db.Column(db.String(128), comment='頭像')idNum = db.Column(db.String(64), comment='身份證號碼')sumFriends = db.Column(db.Integer, comment='邀請數量統計')invite_user_id= db.Column(db.Integer, comment='邀請的用戶id')role = db.Column(db.Integer, comment='是否管理員', default=0) # 0普通用戶 1管理員loginTime = db.Column(db.DateTime, default=datetime.now(), comment='登錄時間')registerTime = db.Column(db.DateTime, default=datetime.now(), comment='用戶注冊的時間')#todo 定義pwd的getter函數,對外使用的屬性的名字;上面password是對應sqlalchemy的(對內的)@propertydef pwd(self):return self.password #todo 返回對內的password的屬性值,數據庫存放的是加密之后的值#todo 定義pwd的setter函數,作用:對密碼加密@pwd.setterdef pwd(self,x_password): #x_password:是明文'''根據明文的密碼加密之后得到密文:param x_password::return: 加密之后的密文'''#根據flask提供的算法,進行加密操作self.password=generate_password_hash(x_password)def check_password(self,x_password):'''驗證密碼是否正確:param x_password:密碼的明文:return:'''return check_password_hash(self.password,x_password)@propertydef pay_pwd(self):"""支付密碼"""return self.payPassword@pay_pwd.setterdef pay_pwd(self, p_password):self.payPassword = generate_password_hash(p_password) # 根據flask提供的算法來加密def check_pay_password(self, p_password):return check_password_hash(self.payPassword, p_password)

賬戶模型類

from comment.models import db from sqlalchemy import ForeignKeyclass Account(db.Model):__tablename__ = 't_account'id = db.Column(db.Integer, primary_key=True, autoincrement=True)userId = db.Column(db.BIGINT, ForeignKey('t_user.id'), comment='用戶表主鍵')#userlist:一對一關系表,一定不是列表user = db.relationship('User', backref=db.backref('accountInfo', lazy=True, uselist=False))total = db.Column(db.Float(10, 2), comment='帳戶總額', default=0)balance = db.Column(db.Float(10, 2), comment='帳戶可用余額', default=0)frozen = db.Column(db.Float(10, 2), comment='賬戶總計凍結總額', default=0)inverstmentW = db.Column(db.Float(10, 2), comment='總計待收本金', default=0)interestTotal = db.Column(db.Float(10, 2), comment='總計待收利息', default=0)addCapitalTotal = db.Column(db.Float(10, 2), comment='月投總額', default=0)recyclingInterest = db.Column(db.Float(10, 2), comment='月取總額', default=0)capitalTotal = db.Column(db.Float(10, 2), comment='月乘總額', default=0)inverstmentA = db.Column(db.Float(10, 2), comment='已投資總額', default=0)interestA = db.Column(db.Float(10, 2), comment='已賺取利息', default=0)uApplyExtractMoney = db.Column(db.Float(10, 2), comment='申請提現金額', default=0)discount = db.Column(db.Float(8, 2), comment='代金券總金額', default=0)

映射到數據庫中

詳細講解在博客
https://blog.csdn.net/YZL40514131/article/details/123954906?spm=1001.2014.3001.5502

總結

以上是生活随笔為你收集整理的【Flask项目2】创建模型类映射到数据库,密码加密实现(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。