• 一百一十二:CMS系统之前台用户模型


    安装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

  • 相关阅读:
    【由浅入深理解java集合】(四)——集合 Queue
    【由浅入深理解java集合】(三)——集合 List
    Java根类Object的方法说明
    【由浅入深理解java集合】(二)——集合 Set
    【由浅入深理解java集合】(一)——集合框架 Collction、Map
    HTTP Content-type 对照表
    ADB Not Responding
    CString 成员函数用法大全
    Oracle中关于DateTime的一些描述
    常用html、CSS、javascript前端命名规范
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11938523.html
Copyright © 2020-2023  润新知