Esempio n. 1
0
class Front_User(db.Model):
    __tablename__ = "front_user"
    # id 类型不用db.Integer类型,使用String是为了防止爆破,同时使用shortuuid进行加密
    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(150), nullable=False)
    _password = db.Column(db.String(150), nullable=False)  # 密码加密操作修改字段
    email = db.Column(db.String(50), unique=True)

    realname = db.Column(db.String(50))
    avatar = db.Column(db.String(150))  # 头像,二进制数据
    signatrue = db.Column(db.String(500))  # 签名
    gender = db.Column(db.Enum(GenderEnum),
                       default=GenderEnum.UNKNOW)  # 性别枚举类,默认未知
    join_time = db.Column(db.DateTime, default=datetime.now)  # 默认当前时间

    # 修改密码加密操作,manage.py映射数据库时候,使用字段保持相同,由于字段太多,使用传参形式
    def __init__(self, *args, **kwargs):
        if 'password' in kwargs:  # 如果传参中包含有
            self.password = kwargs.get('password')  # 获取该参数值赋值给password
            kwargs.pop('password')  # 模型参数中是_password,不是password,弹出

        # super(FrontUser, self).__init__(*args, **kwargs)   # python2的写法
        super().__init__(*args, **kwargs)

    # 密码加密操作
    @property
    def password(self):  # 密码取值
        return self._password

    @password.setter  # 密码加密
    def password(self, raw_password):
        self._password = generate_password_hash(raw_password)

    # 用于验证前台登录密码是否和数据库一致,raw_password是前台登录输入的密码
    def check_password(self, raw_password):
        result = check_password_hash(
            self.password,
            raw_password)  # 相当于用相同的hash加密算法加密raw_password,检测与数据库中是否一致
        return result
Esempio n. 2
0
class Vulhub(db.Model):
    __tablename__ = 'vulhub'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    tid = db.Column(db.Integer, nullable=False)
    cansee = db.Column(db.Boolean, nullable=False, default=False)
    vulname = db.Column(db.String(128), nullable=False)
    addr = db.Column(db.String(64), nullable=False)
    serviceport = db.Column(db.String(64), nullable=False)
    sshport = db.Column(db.Integer, nullable=False)
    sshname = db.Column(db.String(128), nullable=False)
    sshpass = db.Column(db.String(128), nullable=False)
    dockerid = db.Column(db.String(128), nullable=False)
    status = db.Column(db.Boolean, nullable=False, default=True)
    detail = db.Column(db.Text)
Esempio n. 3
0
class User(db.Model):
    """用户表"""
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(30), nullable=False)
    password = db.Column(db.String(100), nullable=False)
    phone = db.Column(db.String(11), unique=True, nullable=False)
    hobby = db.Column(db.String(30))
    icon = db.Column(db.String(300))
    is_delete = db.Column(db.Boolean())
    email = db.Column(db.String(200))
    rdatetime = db.Column(db.DateTime, default=datetime.now)

    def __str__(self):
        return self.username
Esempio n. 4
0
class Banner(db.Model):
    __tablename__ = 'banner'
    # 图片的主键ID
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 图片的描述信息
    title = db.Column(db.String(100), nullable=False)
    # 图片存放的路径
    route = db.Column(db.String(100), nullable=False)
    # 轮播图主标题
    main_title = db.Column(db.String(100), nullable=False)
    # 轮播图第一行内容
    vice_title_one = db.Column(db.String(100), nullable=False)
    # 轮播图第二行内容
    vice_title_two = db.Column(db.String(100), nullable=False)
    # 轮播图按钮文字
    button_font = db.Column(db.String(100), nullable=False)
    # 按钮跳转链接
    button_link = db.Column(db.String(1000), nullable=False)
Esempio n. 5
0
class Marine_hydrology(db.Model):
    __tablename__ = 'marine_hydrology'
    # 海洋水文图片的主键ID
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 海洋水文数据集图片存放的路径
    route = db.Column(db.String(100), nullable=False)
    # 海洋水文数据集名称
    data_set_name = db.Column(db.String(100), nullable=False)
    # 海洋水文数据集大小
    data_set_size = db.Column(db.String(100), nullable=False)
    # 海洋水文数据集来源
    data_set_source = db.Column(db.String(1000), nullable=False)
    # 海洋水文数据集时间范围
    data_set_time_frame = db.Column(db.String(100), nullable=False)
    # 海洋水文数据集空间位置
    data_set_loc = db.Column(db.String(100), nullable=False)
    # 海洋水文数据集摘要
    data_set_abstract = db.Column(db.String(10000), nullable=False)
Esempio n. 6
0
class Abroad(db.Model):
    __tablename__ = 'abroad'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    country = db.Column(db.String(20))  #国家
    city = db.Column(db.String(20))
    name = db.Column(db.String(16))
    age = db.Column(db.String(16))
    sex = db.Column(db.String(16))
    school = db.Column(db.String(20))  # 留学学校
    major = db.Column(db.String(20))  # 专业
    TOELF = db.Column(db.Integer)  #托福
    IELTS = db.Column(db.Integer)  #雅思
    advice = db.Column(db.Text)
    others = db.Column(db.Text)
    school_life = db.Column(db.Text)
    hobby = db.Column(db.Text)
    self_evaluation = db.Column(db.Text)
Esempio n. 7
0
class Login_logs(db.Model):
    __tablename__ = 'login_logs'

    id = db.Column(db.Integer, primary_key=True)  # id => 主键

    username = db.Column(db.String(64), index=True)  # 用户的用户名

    browser = db.Column(db.String(124), index=True)  # 用户使用的浏览器

    device = db.Column(db.String(124), index=True)  # 用户使用的设备

    os = db.Column(db.String(124), index=True)  # 用户的操作系统

    ip = db.Column(db.String(64), index=True)  # 用户IP地址

    platform = db.Column(db.String(12), index=True)  # user's platform

    login_date = db.Column(db.String(64), default=now())
Esempio n. 8
0
class Contents(db.Model):
    __tablename__ = 'contents'
    novels_id = db.Column(db.Integer, db.ForeignKey('novels.id'))
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    author = db.relationship('Novels', backref=db.backref('questions'))


# class Answer(db.Model):
#     __tablename__ = 'answer'
#     id=db.Column(db.Integer,primary_key=True,autoincrement=True)
#     content=db.Column(db.Text, nullable=False)
#     create_time = db.Column(db.DateTime, default=datetime.now)
#     question_id=db.Column(db.Integer, db.ForeignKey('question.id'))
#     author_id=db.Column(db.Integer, db.ForeignKey('user.id'))
#
#     question=db.relationship('Question',backref=db.backref('answers',order_by=create_time.desc()))
#     author = db.relationship('User', backref=db.backref('answers'))
Esempio n. 9
0
class FrontUser(db.Model):
    __tablename__="front_user"
    id=db.Column(db.String(30),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))
    avatar=db.Column(db.String(100))
    signature=db.Column(db.String(100))
    gender=db.Column(db.Enum(GenderEnum),default=GenderEnum.UNKNOW)
    join_time=db.Column(db.DateTime,default=datetime.now)


    @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):
        return check_password_hash(self.password,raw_password)
Esempio n. 10
0
class TeacherInformation(db.Model):

    __tablename__ = 'teacherInfomation'

    Teacher_ID = db.Column(db.String(20), primary_key=True)

    Teacher_Name = db.Column(db.String(20), nullable=False)

    Teacher_Ph_Num = db.Column(db.String(20), nullable=False)

    Teacher_email = db.Column(db.String(20), nullable=False)

    Teacher_class = db.Column(db.String(20), nullable=False)

    Teacher_password = db.Column(db.String(20), nullable=False)
Esempio n. 11
0
class StudentResume(db.Model):

    __tablename__ = 'studentResume'

    Student_Name = db.Column(db.String(20), primary_key=True)

    Student_Ph_Num = db.Column(db.String(20), nullable=False)

    Student_email = db.Column(db.String(20), nullable=False)

    Student_Resum_address = db.Column(db.String(50), nullable=False)

    Student_The_hitnum = db.Column(db.String(10), nullable=False)

    Student_discuss_address = db.Column(db.String(49), nullable=False)
Esempio n. 12
0
class Rule(db.Model):
    __tablename__ = "rule"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    type = db.Column(db.Enum("file", "menu"), nullable=False)
    pid = db.Column(db.Integer, nullable=False, index=True, default=0)
    name = db.Column(db.String(100), unique=True, nullable=False)
    title = db.Column(db.String(50), nullable=False)
    icon = db.Column(db.String(50), nullable=False)
    condition = db.Column(db.String(255), nullable=False)
    remark = db.Column(db.String(255), nullable=False)
    ismenu = db.Column(db.SmallInteger, nullable=False)
    createtime = db.Column(db.Integer, nullable=False)
    updatetime = db.Column(db.Integer, nullable=False)
    weigh = db.Column(db.Integer, nullable=False, index=True, default=0)
    status = db.Column(db.String(30), nullable=False)
Esempio n. 13
0
class EventLog(db.Model):
    __tablename__ = 'event_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    resource_type = db.Column(db.String(32), nullable=False)  # 操作资源类型
    result = db.Column(db.String(10))  # 操作结果
    operation_resources_id = db.Column(db.Integer)  # 操作资源ID
    operation_event = db.Column(db.String(255))  # 操作事件
    submitter = db.Column(db.String(32), nullable=False)  # 提交者
    time = db.Column(db.DateTime, default=datetime.datetime.now())  # 创建时间
    # 外键
    # event_request_id = db.Column(db.String, db.ForeignKey(RequestLog.request_id))  # 请求ID
    # task_request_id = db.Column(db.String, db.ForeignKey(TaskLog.task_id))  # 任务ID

    event_request_id = db.Column(db.String(100))  # 请求ID
    task_request_id = db.Column(db.String(100))  # 任务ID
Esempio n. 14
0
class Swtc(db.Model):
    __tablename__ = 'swtctop_ex'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    address = db.Column(db.String(256), nullable=False)
    swtc = db.Column(db.Numeric, nullable=False)
    cnt = db.Column(db.Numeric, nullable=True)
    hjt = db.Column(db.Numeric, nullable=True)
    jcc = db.Column(db.Numeric, nullable=True)
    vcc = db.Column(db.Numeric, nullable=True)

    def to_json(self):
        json_swtc = {
            'id': self.id,
            'address': self.address,
            'swtc': self.swtc,
            'cnt': self.cnt,
            'hjt': self.hjt,
            'jcc': self.jcc,
            'vcc': self.vcc
        }
        return json_swtc
Esempio n. 15
0
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=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))
    # 头像
    avatar = db.Column(db.String(100))
    signature = db.Column(db.String(100))
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOW)
    join_time = db.Column(db.DateTime, default=datetime.now)

    works = db.relationship('WorkModel', backref='writer')

    def __init__(self, *args, **kwargs):
        if 'password' in kwargs:
            self.password = kwargs.get('password')
            # 把 password 取出来之后,从 kwargs 中去掉
            kwargs.pop('password')
        super(FrontUser, self).__init__(*args, **kwargs)

    # password属性(方法)获取值
    @property
    def password(self):
        return self._password

    # 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
Esempio n. 16
0
class FrontUser(db.Model, UserMixin):
    """
    定义一个类名,系统将类转换为表格,表名为front_user
    定义类的属性就是表格的字段名
    为了安全性,可以将用户表的password属性置为保护属性如    _password
    为了方便用户操作保护属性像操作普通属性一样,需要装饰 _password
    在设置密码的过程中,需要对密码加密——>调用generate_password_hash()
    另外定义一个校验密码的方法check_password()
    在校验密码的过程中,需要对密码解密——>调用check_password_hash()
    """
    __tablename__ = "front_user"
    id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid)
    telephone = db.Column(db.String(11), unique=True, nullable=False)
    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))
    avatar = db.Column(db.String(100))
    signature = db.Column(db.String(100))
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOWN)
    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().__init__(*args, **kwargs)

    @property
    def password(self):
        return self._password

    @password.setter
    def password(self, newpwd):
        self._password = generate_password_hash(newpwd)

    def check_password(self, rawpwd):
        return check_password_hash(self._password, rawpwd)
Esempio n. 17
0
class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    post_day = db.Column(db.Date, nullable=False, default=date.today())
    author_id = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    board_id = db.Column(db.Integer,
                         db.ForeignKey('boards.id'),
                         nullable=False)
    com_num = db.Column(db.Integer, nullable=False, default=0)
    favor_num = db.Column(db.Integer, nullable=False, default=0)
    reward = db.Column(db.Integer, nullable=False, default=0)
    status = db.Column(db.Enum("reviewing", "normal", "blocked", "hot"),
                       nullable=False,
                       default="reviewing")

    author = db.relationship('User', backref=db.backref('articles'))
    board = db.relationship('Board', backref=db.backref('articles'))
Esempio n. 18
0
class Job(db.Model):
    __tablename__ = 'job'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    city = db.Column(db.String(20))
    content = db.Column(db.String(20))
    salary = db.Column(db.Integer)
    name = db.Column(db.String(16))
    age = db.Column(db.String(16))
    sex = db.Column(db.String(16))
    company = db.Column(db.String(20))
    advice = db.Column(db.Text)
    others = db.Column(db.Text)
    school_life = db.Column(db.Text)
    hobby = db.Column(db.Text)
    self_evaluation = db.Column(db.Text)
Esempio n. 19
0
class StudentInfomation(db.Model):
    __tablename__ = 'studentInfomation'

    Student_ID = db.Column(db.String(20), primary_key=True)

    Student_Name = db.Column(db.String(20), nullable=False)

    Student_Ph_Num = db.Column(db.String(20), nullable=False)

    Student_email = db.Column(db.String(20), nullable=False)

    Student_class = db.Column(db.String(20),
                              ForeignKey("studentTerm.class_Name"),
                              nullable=False)

    Student_password = db.Column(db.String(20), nullable=False)
Esempio n. 20
0
class Company(db.Model, BaseModel):

    __tablename__ = 'company'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    uuid = db.Column(db.String(100),
                     default=lambda: str(uuid4()),
                     nullable=False)
    company_name = db.Column(db.String(100), nullable=False)
    company_address = db.Column(db.String(200))
    customs_registration_code = db.Column(db.String(10),
                                          nullable=False,
                                          unique=True)
    organization_code = db.Column(db.String(9), nullable=False, unique=True)
    legal_name = db.Column(db.String(100), nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
Esempio n. 21
0
class FrontUser(db.Model):
    __tablename__ = 'front_user'
    #这里的id如果我们还使用自动增长,就会存在商业安全隐患,用户可以根据id推算出我们网站的人数
    #不使用自动增长,又要保证id的唯一性,我们就可以使用uuid
    #虽然uuid好用,但是它太长了,查找的效率会降低
    #这时我们就可以使用shortuuid这个库,它既满足了唯一性,又没有uuid那么长
    id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid)
    telephone = db.Column(db.String(11), nullable=False)
    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))
    avatar = db.Column(db.String(50))#头像
    signature = db.Column(db.String(100))#签名
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOW)
    join_time = db.Column(db.DateTime, default=datetime.now)

    #对password对应的是_password,所以要做处理
    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, newpwd):
        self._password = generate_password_hash(newpwd)

    def check_password(self, rawpwd):
        return check_password_hash(self._password, rawpwd)
Esempio n. 22
0
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))
    avatar = db.Column(db.String(100))
    signature = db.Column(db.String(100))
    # 使用枚举,设定默认值为类下的属性
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOW)
    # 此处使datetime.now,而不是datetime.now(),实例化对象时会自动计算时间,而后
    # 者在模型创建刚使用时的时间
    join_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, *args, **kwargs):
        if "password" in kwargs:
            # kwargs属于字典,这里可以调用字典的内建方法,get,pop,其他内建方法有:
            #调用password函数,返回的self._password
            self.password = kwargs.get('password')
            kwargs.pop("password")
        #super的作用:将除去password的数据提交给父类去处理
        super(FrontUser, self).__init__(*args, **kwargs)

    # 使用装饰器,将函数定义为属性,这里一方面为上面初始化时调用,另一方面为后面给属性增加方法
    @property
    def password(self):
        return self._password

    @password.setter
    def password(self, newpwd):
        self._password = generate_password_hash(newpwd)

    def check_password(self, rawpwd):
        return check_password_hash(self._password, rawpwd)
Esempio n. 23
0
class FrontUser(db.Model):
    __tablename__ = 'front_user'

    # id不能为自增长,因为存在商业风险,特别是id关联的url
    id = db.Column(
        db.String(100), primary_key=True, default=shortuuid.uuid
    )  # 这里uuid不加(),如果给了就是每次都是把执行结果当作id,而现在的需求是每次执行产生一个
    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), nullable=True, unique=True)
    realname = db.Column(db.String(50))
    avatar = db.Column(db.String(100))
    signature = db.Column(db.String(100))
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOWN)
    join_time = db.Column(db.DateTime, default=datetime.now)

    # 初始化
    def __init__(self, *args, **kwargs):
        # 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, newpwd):
        self._password = generate_password_hash(newpwd)

    def check_password(self, rawpwd):
        return check_password_hash(self._password, rawpwd)
Esempio n. 24
0
class SubmitRecord(db.Model):
    """
    ID: 提交编号
    Time: 提交时间
    Confirmed: 是否评分
    Username: 提交人用户名
    RealName: 提交人真实姓名
    Type: 题目方向
    FilePath: 文件路径
    Message: 留言
    """
    __tablename__ = 'submitrecord'
    ID = db.Column(db.Integer, primary_key=True, autoincrement=True)
    Time = db.Column(db.String(20), nullable=False)
    Confirmed = db.Column(db.String(20), nullable=False)
    Username = db.Column(db.String(150), nullable=False)
    RealName = db.Column(db.String(150), nullable=False)
    Type = db.Column(db.String(150), nullable=False)
    FilePath = db.Column(db.String(150), nullable=False)
    Message = db.Column(db.String(350), nullable=False)
Esempio n. 25
0
class SystemConfig(db.Model):
    __table_name__ = 'system_config'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    #  平台名称
    platform_name = db.Column(db.String(32), unique=True)
    # 版本信息
    version_information = db.Column(db.String(32), unique=True)

    logo = db.Column(db.String(128), default=UPLOAD_DIR + 'logo.png')
    # 版权
    copyright = db.Column(db.String(32), unique=True)
    # 用户验证模式
    user_authentication_mode = db.Column(db.String(16))
    # 是否开启调试模式
    debug = db.Column(db.Boolean, default=False)
    # 日志存储
    store_log = db.Column(db.String(100), default=BASE_DIR + 'app\\static\\store.log')
Esempio n. 26
0
class FrontUser(db.Model):
    # FrontUser  front_user
    __tablename__ = 'front_user'
    # 安全 asdasd34rsdf  uuid  shortuuid
    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(100), unique=True)

    realname = db.Column(db.String(50))
    avatar = db.Column(db.String(100))
    signatrue = db.Column(db.String(100))
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOW)

    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)
        super().__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
Esempio n. 27
0
class FrontUser(db.Model):
    __tablename__ = 'front_user'

    id = db.Column(db.String(25),
                   primary_key=True,
                   unique=True,
                   default=shortuuid.uuid)
    name = db.Column(db.String(20), nullable=False)
    _password = db.Column(db.String(200), nullable=False)
    mobile = db.Column(db.String(15), nullable=False, unique=True)
    email = db.Column(db.String(30), unique=True)
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.UNKNOWN)
    avatar = db.Column(db.String(150), default=DEFAULT_AVATAR)
    signature = db.Column(db.String(50))
    realname = db.Column(db.String(10))
    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):
        # 通过property将password转化为方法, 以便进行操作后再存储
        return self._password

    @password.setter
    def password(self, raw_password):
        # setter装饰器可以在创建类时取代init
        self._password = generate_password_hash(raw_password)

    def check_password(self, raw_password):
        result = check_password_hash(self.password, raw_password)
        return result
Esempio n. 28
0
class User(db.Model):
    __tablename__ = 'user'  #表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_name = db.Column(db.String(16))
    password = db.Column(db.String(16))
    name = db.Column(db.String(16))
    sex = db.Column(db.String(16))
    phone = db.Column(db.String(16))
    post = db.Column(db.String(16))

    def __init__(self, user_name, password, name, sex, phone, post):
        self.user_name = user_name
        self.password = password
        self.name = name
        self.sex = sex
        self.phone = phone
        self.post = post
Esempio n. 29
0
class Question(db.Model):
    __tablename__ = 'question'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(50),nullable=False)
    content = db.Column(db.Text,nullable=False)
    # 被阅读次数
    viewsnum = db.Column(db.Integer,server_default=text('0'))

    #注意datetime.now后面不加(),加了括号就是服务器第一次运行的时间,不加则是每次创建一个模型的时候获取的当前的时间
    create_time = db.Column(db.DateTime,default=datetime.now)
    #绑定一个外键
    author_id = db.Column(db.Integer,db.ForeignKey('user.id'))
    author = db.relationship('Users',backref=db.backref('questions'))

    def increace_viewsnum(self):
        # 这样添加是错误的,只能是add一个完整的数据,add可以修改已有的数据
        # self.viewsnum += 1
        # db.session.add(self.viewsnum)
        # db.session.commit()
        question = Question.query.get(self.id)
        question.viewsnum += 1
        db.session.add(question)
        db.session.commit()
Esempio n. 30
0
class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    title = db.Column(db.String(100))  #标题
    excerpt = db.Column(db.session(200))  #摘要
    category_id = db.Column(db.Integer,
                            db.ForeignKey('category.id'))  #文章与分类是一对多的关系
    category = db.relationship("Category", backref='categorys')  #分类表可以通过查询文章

    tags = db.relationship("Tag", secondary=article_tag_table,
                           backref='tags')  #标签与文章是多对多的关系

    #user 是通过取出用户表中用户字段
    user_id = db.Column(db.Integer, db.ForeignKey('cms_user.id'))
    user = db.relationship('CMSUser', backref='cmsusers')
    views = db.Column(db.Integer)

    #tui  推荐位与文章表是一对多的关系
    tui_id = db.Column(db.Integer, db.ForeignKey('tui.id'))
    tui = db.relationship("Tui", backref='tuis')

    created_time = db.Column(db.DateTime, default=datetime.now)
    modified_time = db.Column(db.DateTime, default=datetime.now)