コード例 #1
0
class User(db.Model, UserMixin):  # 表名将会是 user(自动生成,小写处理)
    email = db.Column(db.String(50), primary_key=True)  # 邮箱, 主键
    password_hash = db.Column(db.String(128))  # 密码哈希

    # confirmed = db.Column(db.Boolean, default=False)

    # def generate_confirmation_token(self, expiration=3600):
    #     s = Serializer(app.config['SECRET_KEY'], expiration)
    #     return s.dumps({'confirm': self.email})

    # @staticmethod
    # def check_activate_token(self, token):
    #     s = Serializer(app.config['SECRET_KEY'])
    #     try:
    #         data = s.loads(token)  # 解码
    #     except Exception:
    #         return False
    #     user = User.query.get(email=data.get('confirm'))
    #     if user is None:
    #         return False
    #     if not user.confirmed:
    #         user.confirmed = True
    #         db.session.add(user)
    #     return True

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)

    def get_id(self):
        return self.email
コード例 #2
0
class Movie(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(60))
    year = db.Column(db.String(4))

    def __repr__(self):
        return '<Movie {}>'.format(self.title)
コード例 #3
0
class Message(db.Model):
    __tablename__ = 'Message'

    id = db.Column(db.Integer, primary_key=True)                           # id(主键)
    course_name = db.Column(db.String(50), db.ForeignKey('Course.name'))   # 消息对应的课程
    title = db.Column(db.String(50))                                       # 消息的标题
    info = db.Column(db.String(1000))                                      # 消息的内容
コード例 #4
0
class User(db.Model, UserMixin):  # 表名将会是 user(自动生成,小写处理)
    id = db.Column(db.Integer, primary_key=True)  # 主键
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(300))  # 密码散列值

    def set_password(self, password):  # 用来设置密码的方法,接受密码作为参数
        self.password_hash = generate_password_hash(password)  # 将生成的密码保持到对应字段

    def validate_password(self, password):  # 用于验证密码的方法,接受密码作为参数
        return check_password_hash(self.password_hash, password)  # 返回布尔值

    def set_name(self, name):
        self.name = name

    def set_username(self, username):
        self.username = username

    def valid_username(self, username):
        valid_length = 0 < len(username) and len(username) <= 20
        ret = valid_length and username.isalnum()  # 内置函数,判断字符串是否只含字母和数字
        return ret

    def valid_password(self, password):
        valid_length = 0 < len(password) and len(password) <= 20
        ret = valid_length and password.isalnum()  # 判断字符串是否为字母和数字组合
        return ret
コード例 #5
0
class User(db.Model, UserMixin):

    __tablename__ = "user"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))

    @property
    def is_authenticated(self):
        return True

    @property
    def is_active(self):
        return True

    @property
    def is_anonymous(self):
        return False

    def get_id(self):
        return str(self.id)  # python 3

    def __repr__(self):
        return '<User %r>' % self.nickname

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #6
0
class Comment(db.Model):
    __tablename__ = "comments"
    __table_args__ = {'mysql_charset': 'utf8mb4'}  # 支持表情emoji
    id_comment = db.Column(db.Integer,
                           primary_key=True,
                           nullable=False,
                           unique=True)
    # 外键, 删除用户/文章 同时删去对应的评论
    id_user = db.Column(db.Integer, ForeignKey('users.id'))
    author = relationship("User",
                          backref=backref(
                              "Comment",
                              cascade='save-update, delete, delete-orphan'),
                          cascade='save-update',
                          single_parent=True)
    # user = relationship("User", back_populates="comments",
    #                     cascade='save-update, delete, delete-orphan')

    id_article = db.Column(db.Integer, ForeignKey('articles.id_article'))
    article = relationship("Article",
                           backref=backref(
                               "Comment",
                               cascade='save-update, delete, delete-orphan'),
                           cascade='save-update',
                           single_parent=True)
    # article = relationship("Article", back_populates="comments",
    #                     cascade='save-update, delete, delete-orphan')

    content = db.Column(db.String(200), nullable=False, comment="评论内容")
    create_time = db.Column(db.DateTime, default=func.now(), comment="创建评论时间")
コード例 #7
0
class Article_Has_Tag(db.Model):
    __tablename__ = "article_has_tags"
    # 外键, 删除文章/标签 同时删除本表关联内容
    id_article = db.Column(db.Integer,
                           ForeignKey("articles.id_article"),
                           primary_key=True)

    id_tag = db.Column(db.Integer, ForeignKey("tags.id_tag"), primary_key=True)

    # 引用文章 删除, 孤儿模式(被父表接触关系 自己也删除了)
    article = relationship("Article",
                           backref=backref("article_has_tags", cascade="all"),
                           cascade='save-update',
                           single_parent=True)
    # 引用标签对象
    tag = relationship("Tag",
                       backref=backref(
                           'article_has_tags',
                           cascade='save-update, delete, delete-orphan'),
                       cascade='save-update',
                       single_parent=True)

    # article.tag.append(Tag(), Tag())
    # def __init__(self, tag=None, article=None):
    #     self.article = article
    #     self.tag = tag
    def __repr__(self):
        return f"Article({self.id_article})-Tag({self.id_tag})"
コード例 #8
0
class GPU(db.Model):
    __tablename__ = 'GPU'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))  # gpu的名称
    info = db.Column(db.String(1000))  # gpu是否空闲
    course_name = db.Column(db.String(50),
                            db.ForeignKey('Course.name'))  # gpu对应的课程
コード例 #9
0
ファイル: models.py プロジェクト: clark19901/flask_mini
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值
    def set_password(self, password):  # 用来设置密码的方法,接受密码作为参数
        self.password_hash = generate_password_hash(password)  # 将生成的密码保持到对应字段
    def validate_password(self, password):  # 用于验证密码的方法,接受密码作为参数
        return check_password_hash(self.password_hash, password)  # 返回布尔值
コード例 #10
0
class Movie(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    year = db.Column(db.String(4))

    def __repr__(self):
        return '<Movie(id={}, title={}, year={})>'.format(
            self.id, self.title, self.year
            )
コード例 #11
0
class Ariticles(db.Model):
    id = db.Column(db.Integer, primary_key=True)  # 主键
    title = db.Column(db.String(60))
    content = db.Column(db.Text, nullable=False)
    author_id = db.Column(db.Integer,
                          db.ForeignKey(User.id),
                          default=1,
                          nullable=False)
    pubdate = db.Column(db.DateTime, default=datetime.now, nullable=False)
コード例 #12
0
ファイル: models.py プロジェクト: NathanDrake99/watchlist
class Article(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(32))
    content = db.Column(db.Text, nullable=False)
    tag = db.Column(db.String(64), nullable=True)
    create_time = db.Column(db.DateTime, nullable=True, default=datetime.now)

    def __repr__(self):
        return '<User %r>' % self.title
コード例 #13
0
class Ariticles(db.Model):
    id = db.Column(db.Integer, primary_key=True)  # 主键
    title = db.Column(db.String(50))  #标题
    content = db.Column(db.Text)  #内容
    author = db.Column(db.String(20))  #作者

    pubdate = db.Column(
        db.String(30),
        index=True,
        default=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  #发布时间
コード例 #14
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)
    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #15
0
ファイル: models.py プロジェクト: z3151zaq/watchlist
class User(db.Model, UserMixin):  # 表名将会是 user(自动生成,小写处理)
    id = db.Column(db.Integer, primary_key=True)  # 主键
    name = db.Column(db.String(20))  # 名字
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #16
0
ファイル: models.py プロジェクト: xiaoyunjie/watchlist
class User(db.Model, UserMixin):  # 表名将会是 user(自动生成,小写处理)
    id = db.Column(db.Integer, primary_key=True)  # 主键
    name = db.Column(db.String(20))  # 名字
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值

    def set_password(self, password):  # 设置密码方法,接受密码作为参数
        self.password_hash = generate_password_hash(password)  # 将生成的密码保存到对应的字段

    def validate_password(self, password):  # 用于验证密码的方法,接受密码作为参数
        return check_password_hash(self.password_hash, password)  # 返回布尔值
コード例 #17
0
class User(db.Model, UserMixin):  # user模型,继承db.Model而来,表名为user(小写,自动生成)
    id = db.Column(db.Integer, primary_key=True)  # 每一个字段要实例化db.Column,传入字段类型
    name = db.Column(db.String(20))
    user_name = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #18
0
ファイル: models.py プロジェクト: DRRMAST/watchlist
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))
    movies = db.relationship('Movie', backref='user')

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #19
0
ファイル: models.py プロジェクト: guof25/watchlist
class User(db.Model, UserMixin):
    __tablename__ = "wl_user"  # 数据库表名,未定义则默认是类名
    id = db.Column(db.Integer, primary_key=True)  # flask中主键必须显示定义,自增长类型
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #20
0
ファイル: models.py プロジェクト: wangye1221/watchlist
class User(db.Model, UserMixin):  #模型类,数据库表的对象关系映射。
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(
            password)  #将密码进行hash加密后保存变量

    def validate_password(self, password) -> bool:
        return check_password_hash(self.password_hash, password)  #返回bool值
コード例 #21
0
ファイル: models.py プロジェクト: NathanDrake99/watchlist
class User(db.Model, UserMixin):
    """docstring for ClassName"""
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))  # 密码散列

    def set_password(self, password):  # 设置密码方法,接收密码作为参数
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):  # 验证密码方法, 接收密码作为参数
        return check_password_hash(self.password_hash, password)  # 返回布尔值
コード例 #22
0
ファイル: models.py プロジェクト: Loong-fairy/watchlist_
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True, nullable=True)
    name = db.Column(db.String(20))  # 昵称
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值
    articles = db.relationship("Articles", backref="user")  # 连接博文信息表

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #23
0
class User(db.Model, UserMixin):  # 数据库表,表名为user
    id = db.Column(db.Integer, primary_key=True)  # 主键,个人理解应该是序号
    name = db.Column(db.String(20))  # 名字
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码散列值

    def set_password(self, password):
        """用来生成密码的散列值"""
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        """验证输入密码与散列值是否一致"""
        return check_password_hash(self.password_hash, password)
コード例 #24
0
ファイル: models.py プロジェクト: davidswei/watchlist
class User(db.Model, UserMixin):  # 表名将会是user(自动生成,小写处理)
    id = db.Column(db.Integer, primary_key=True)  # 主键
    name = db.Column(db.String(20))  # 名字
    username = db.Column(db.String(20))  #用户名
    password_hash = db.Column(db.String(128))  # 密码Hash值

    def set_password(self, password):
        # 用来设置密码到方法,接受密码作为参数,将生成到密码保持到对应字段
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        #  用于验证密码到方法,接受密码作为参数,返回布尔值
        return check_password_hash(self.password_hash, password)
コード例 #25
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    username = db.Column(db.String(50))
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return '<User(id={}, name={})>'.format(self.id, self.name)
コード例 #26
0
ファイル: models.py プロジェクト: HQQ123/watchlist
class User(db.Model, UserMixin):
    """表名自动生成,为user, id与name分别为主键名与列名"""
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))  # 用户名
    password_hash = db.Column(db.String(128))  # 密码hash值

    def set_password(self, password):
        """生成密码散列值,参数为密码"""
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        """验证密码, 密码为参数"""
        return check_password_hash(self.password_hash, password)
コード例 #27
0
class User(db.Model, UserMixin):  #用户认证用到 UserMixin
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    username = db.Column(db.String(20))  # 用户名
    email = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))  #密码散列值

    # tall = db.Column(db.Integer)
    # nickname = db.Column(db.String(20))
    #生成密码散列值
    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    #核对散列值与密码是否匹配
    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
コード例 #28
0
class User(UserMixin, db.Model):
    """用户模型"""
    id = db.Column(db.INTEGER, primary_key=True)
    name = db.Column(db.String(32))  # 名字
    password_hash = db.Column(db.String(128))

    @property
    def password(self):
        """不能直接访问密码"""
        raise AttributeError("不允许读取当前属性")

    @password.setter
    def password(self, value):
        self.password_hash = generate_password_hash(value)

    def check_password(self, password) -> bool:
        """校验密码"""
        return check_password_hash(self.password_hash, password)
コード例 #29
0
class Course(db.Model):
    __tablename__ = 'Course'

    id = db.Column(db.Integer, primary_key=True)  # id(主键)
    name = db.Column(db.String(50))               # 课程名称
    teacher = db.Column(db.String(50))            # 任课老师
    time = db.Column(db.String(50))               # 授课时间(学年、学期)
    info = db.Column(db.String(300))              # 课程其他信息
    course_name = db.Column(db.String(50), db.ForeignKey('Course.name'))  # 用户对应的课程
    gpu_name = db.Column(db.String(50), db.ForeignKey('GPU.name'))  # gpu name
    pic_path = db.Column(db.String(128), default="/static/pic/course_logo.png")  # 课程头像
コード例 #30
0
class Process(db.Model):
    __tablename__ = 'Process'

    id = db.Column(db.Integer, primary_key=True)                    # id(主键)
    name = db.Column(db.String(50))                                 # 程序的名称
    info = db.Column(db.String(300))                                # 程序的信息
    state = db.Column(db.String(50))                                # 是否运行完成
    result = db.Column(db.String(1000))                             # 程序的结果
    code = db.Column(db.String(10000))                              # 存储代码,方便以后编辑代码
    course_name = db.Column(db.String(50), db.ForeignKey('Course.name'))  # 程序所属的课程
    gpu_name = db.Column(db.String(50), db.ForeignKey('GPU.name'))  # 程序在哪个gpu上跑的