一百一十二:CMS系统之前台用户模型
2024-09-01 11:03:27
安装shortuuid用于前台用户的主键:pip install shortuuid
创建模型
from datetime import datetime
import enum
from werkzeug.security import generate_password_hash, check_password_hash
import shortuuid
from exts import db class GenderEnum(enum.Enum):
""" 性别枚举 """
MALE = 1 # 男
FEMALE = 2 # 女
SECRET = 3 # 秘密
UNKNOW = 4 # 用户未填写 class FrontUser(db.Model):
__tablename__ = 'front_user'
id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid)
telephone = db.Column(db.String(11), nullable=False, unique=True)
username = db.Column(db.String(50), nullable=False)
_password = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(50), unique=True)
realname = db.Column(db.String(50), comment='真实姓名')
avatar = db.Column(db.String(100), comment='头像')
signature = db.Column(db.String(100), comment='个性签名')
gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOW, comment='性别')
join_time = db.Column(db.DateTime, default=datetime.now) def __init__(self, *args, **kwargs):
if 'password' in kwargs:
self.password = kwargs.get('password')
kwargs.pop('password')
super(FrontUser, self).__init__(*args, **kwargs) @property
def password(self):
return self._password @password.setter
def password(self, raw_password):
self._password = generate_password_hash(raw_password) def check_password(self, raw_password):
result = check_password_hash(self.password, raw_password)
return result
执行数据库迁移
python manager.py db migrate
python manager.py db upgrade
插入用户命令
@manager.option('-t', '--telephone', dest='telephone')
@manager.option('-u', '--username', dest='username')
@manager.option('-p', '--password', dest='password')
def create_front_user(telephone, username, password):
""" 创建前台用户 """
user = FrontUser(telephone=telephone, username=username, password=password)
db.session.add(user)
db.session.commit()
执行命令:python manager.py create_front_user -t 11111111111 -u front_user -p 123456
最新文章
- 主机巡检脚本:OSWatcher.sh
- vm centos 网络配置
- apache限制同一ip大并发访问及下载
- Harris角点检测
- 2013 多校联合2 D Vases and Flowers (hdu 4614)
- LayoutInflater 原理分析 示例
- Android Training: 设备管理
- Python装饰器学习(九步入门)
- Visual Studio 自定义项目模板
- 后端分布式系列:分布式存储-HDFS 架构解析
- Mybatis 事务管理
- tensorflow-yolo3系列配置文章汇总
- log4j配置后行号乱码显示为?问号
- tar分层压缩
- csrf_token(跨站伪造)
- SpringBoot详细研究-05微服务与拾遗
- jacob将word转换为html
- hdoj2955 Robberies(01背包)
- PLSQL数据库无选项问题解决
- Java并发基础--Lock的学习
热门文章
- Python&;Selenium借助html-testRunner生成自动化测试报告
- mysql基础_数据类型
- C# 集合(9) 持续更新
- fsLayuiPlugin单页面操作
- Java的值传递和引用传递的说法
- Modbus通讯协议
- Jquery开发&;BootStrap 实现“todolist项目”
- SpringMVC拦截静态资源的解决方法
- 题解 BZOJ1026 &; luogu P2657 [SCOI2009]windy数 数位DP
- 小米 oj 硬币比赛(思维+动态规划)