zoukankan      html  css  js  c++  java
  • 一百一十二: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

  • 相关阅读:
    HTML标签和属性三
    HTML标签和属性二
    HTML标签和属性一
    小程序相关面试题
    Vue路由的hash模式与history模式的区别?
    android中VideoView播放sd卡上面的视频
    Android中app开机自启动的开发
    java中byte,byte[]和int之间的转换
    Android多activity启动两种方式浅谈
    Android开发用到的几种常用设计模式浅谈(一):组合模式
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11938523.html
Copyright © 2011-2022 走看看