コード例 #1
0
class Posts(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    rid = db.Column(db.Integer, index=True, default=0)
    content = db.Column(db.Text)
    pub_time = db.Column(db.DateTime, default=datetime.utcnow)
    uid = db.Column(db.Integer, db.ForeignKey('users.id'))
    author = db.relationship('User', backref="postes")
コード例 #2
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Preview(db.Model):
    __tablename__ = 'preview'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    title = db.Column(db.String(255), unique=True)  # 标题
    logo = db.Column(db.String(255), unique=True)  # 封面
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __str__(self):
        return '<Preview> %r' % self.title
コード例 #3
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Tag(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 标题
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    movie = db.relationship('Movie', backref='tag')  # 电影外键关联

    def __str__(self):
        return "<Tag %r>" % self.name
コード例 #4
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class UserLog(db.Model):
    __tablename__ = 'userlog'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 关联会员
    ip = db.Column(db.String(100))  # 登陆IP
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 登陆时间

    def __str__(self):
        return '<UserLog %r>' % self.id
コード例 #5
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class AdminLog(db.Model):
    __tablename__ = 'adminlog'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    admin_id = db.Column(db.Integer, db.ForeignKey('admin.id'))  # 所属管理员
    ip = db.Column(db.String(100))  # 登陆IP
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 登陆时间

    def __str__(self):
        return '<AdminLog %r>' % self.id
コード例 #6
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Auth(db.Model):
    __tablename__ = 'auth'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 名称
    url = db.Column(db.String(255), unique=True)  # 地址
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __str__(self):
        return '<Auth %r>' % self.name
コード例 #7
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Moviecol(db.Model):
    __tablename__ = 'moviecol'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 所属电影
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __str__(self):
        return 'Comment %r' % self.id
コード例 #8
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Role(db.Model):
    __tablename__ = 'role'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 名称
    auths = db.Column(db.String(600))
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    admin = db.relationship('Admin', backref='role')  # 管理员外键关系

    def __str__(self):
        return '<Role %r>' % self.name
コード例 #9
0
ファイル: posts.py プロジェクト: gaohj/flask-2002
class Posts(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    rid = db.Column(db.Integer, index=True, default=0)
    content = db.Column(db.Text)
    pub_time = db.Column(db.DateTime, default=datetime.utcnow)

    uid = db.Column(db.Integer, db.ForeignKey("users.id"))
    author = db.relationship("User", backref="postes")

    def __repr__(self):
        return 'Posts:id:%d' % self.id
コード例 #10
0
ファイル: users.py プロジェクト: yt1105260634/flask-blog
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    username = db.Column(db.String(32),unique=True)
    password = db.Column(db.String(256))
    email = db.Column(db.String(64),unique=True)
    # 是否激活
    confirmed = db.Column(db.Boolean,default=False)
    icon = db.Column(db.String(64),default='default.jpg')
コード例 #11
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 会员名
    pwd = db.Column(db.String(100))  # 密码
    email = db.Column(db.String(100), unique=True)  # 邮箱
    phone = db.Column(db.String(11), unique=True)  # 电话
    info = db.Column(db.Text)  # 会员介绍
    face = db.Column(db.String(255), unique=True)  # 头像
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 注册时间
    uuid = db.Column(db.String(255), unique=True)  # 唯一标识符
    userlog = db.relationship('UserLog', backref='user')  # 日志外键关联
    comment = db.relationship('Comment', backref='user')  # 评论外键关联
    moviecol = db.relationship('Moviecol', backref='user')  # 收藏外键关联

    def __str__(self):
        return '<User %r>' % self.name

    def check_pwd(self, pwd):
        from werkzeug.security import check_password_hash
        return check_password_hash(self.pwd, pwd)
コード例 #12
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Admin(db.Model):
    __tablename__ = 'admin'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 管理员账号
    pwd = db.Column(db.String(100))  # 密码
    is_super = db.Column(db.SmallInteger, default=0)  # 是否蔚超级管理员,1为超级管理员
    role_id = db.Column(db.Integer, db.ForeignKey('role.id'))  # 所属角色
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    adminlog = db.relationship('AdminLog', backref='admin')  # 登陆日志外键关联
    oplog = db.relationship('OpLog', backref='admin')  # 操作日志外键关联

    def check_pwd(self, pwd):
        from werkzeug.security import check_password_hash
        return check_password_hash(self.pwd, pwd)

    def __str__(self):
        return '<Admin %r>' % self.id
コード例 #13
0
ファイル: __init__.py プロジェクト: Xiaom-233/flask
from .users import User
from .posts import Posts

from apps.exts import db

collections = db.Table(
    'collections',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('posts_id', db.Integer, db.ForeignKey('posts.id')),
)
コード例 #14
0
ファイル: users.py プロジェクト: gaohj/flask-2002
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(32), unique=True)
    password_hash = db.Column(db.String(256))
    email = db.Column(db.String(64), unique=True)
    #是否激活
    confirmed = db.Column(db.Boolean, default=False)
    icon = db.Column(db.String(128), default='default.jpg')

    #添加收藏功能
    favorite = db.relationship('Posts',
                               secondary='collections',
                               backref=db.backref('usered', lazy='dynamic'),
                               lazy='dynamic')

    @property  #把方法可以当成属性来调用
    def password(self):
        raise AttributeError('密码不可读属性')

# password 对外
#对内  password_hash  加密后
#密码永不返回
#密码不可读
#password表示的是用户传递过来的密码

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

    #密码校验  参数为用户提交的密码
    # 先对用户的提交的密码 进行加密 然后跟数据库中存在的加密的密码进行比较
    #正确返回True 否则返回False
    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    #生成token的方法 设置过期时间
    def generate_token(self, expires_in=3600):
        s = Serializer(current_app.config['SECRET_KEY'], expires_in=expires_in)
        return s.dumps({'id': self.id})  #把用户的id 藏到加密的字符串中

    #服务器收到以后 解密 然后拿出id 然后就知道 是哪个用户要激活
    @staticmethod
    def check_activate_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])

        try:
            data = s.loads(token)  #解密 之前加密的字符串
        except:
            return False
        u = User.query.get(data.get('id'))  #解密后拿到 藏的用户id
        #根据这个id 取出用户的详细信息
        if not u:
            return False
        if not u.confirmed:
            u.confirmed = True
            db.session.commit()
        return True

    #判断是否收藏
    def is_favorite(self, pid):
        #获取该用户收藏的所有博客
        # print(type(pid))
        favorites = self.favorite.all()
        # print(type(favorites[0].id))
        #然后判断 pid 是否在里边
        posts = list(filter(lambda p: p.id == int(pid), favorites))

        # print(len(posts))
        if len(posts) > 0:
            return True

        return False

    #收藏
    def add_favorite(self, pid):
        p = Posts.query.get(pid)
        self.favorite.append(p)
        db.session.commit()

    #取消收藏
    def del_favorite(self, pid):
        p = Posts.query.get(pid)
        self.favorite.remove(p)
        db.session.commit()
コード例 #15
0
ファイル: models.py プロジェクト: hllcoder/filmsapi
class Movie(db.Model):
    __tablename = 'movie'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    title = db.Column(db.String(255), unique=True)  # 标题
    url = db.Column(db.String(255), unique=True)  # 地址
    info = db.Column(db.Text)  # 简介
    logo = db.Column(db.String(255), unique=True)  # 封面
    star = db.Column(db.SmallInteger)  # 星级
    playnum = db.Column(db.BigInteger, default=0)  # 播放量
    commentnum = db.Column(db.BigInteger, default=0)  # 评论量
    tag_id = db.Column(db.Integer, db.ForeignKey('tag.id'))  # 所属标签
    area = db.Column(db.String(255))  # 上映地区
    release_time = db.Column(db.Date)  # 上映时间
    length = db.Column(db.String(100))  # 播放时间
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    comment = db.relationship('Comment', backref='movie')  # 评论外键关联
    moviecol = db.relationship('Moviecol', backref='movie')  # 收藏外键关联

    def __str__(self):
        return '<Movie %r>' % self.title
コード例 #16
0
class User(db.Model,UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer,primary_key=True)
    username = db.Column(db.String(32),unique=True)
    password_hash = db.Column(db.String(256))
    email = db.Column(db.String(64),unique=True)
    # 是否激活
    confirmed = db.Column(db.Boolean,default=False)
    icon = db.Column(db.String(128),default='default.jpg')

    # 添加收藏功能
    favorite = db.relationship('Posts',secondary='collections',backref=db.backref('usered',lazy='dynamic'),lazy='dynamic')

    @property   # 把方法当成属性调用
    def password(self):
        raise AttributeError('密码不可读属性')

# password  对外
# password_hash     对内,加密后
# 密码永不返回
# 密码不可读

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

    # 密码校验
    # 对提交的密码加密,再与数据库中比较
    # 正确返回True,错误返回Flase
    def verify_password(self,password):
        return check_password_hash(self.password_hash,password)

    # 生成token的方法
    # 设置过期时间
    def generate_token(self,expires_in=3600):
        s = Serializer(current_app.config['SECRET_KEY'],expires_in=expires_in)
        return s.dumps({'id': self.id})  #

    # 校验
    @staticmethod
    def check_activate_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except:
            return False
        u = User.query.get(data.get('id'))
        if not u:
            return False
        if not u.confirmed:
            u.confirmed = True

            db.session.commit()
        return True

    #判断是否收藏
    def is_favorite(self,pid):
        favorites = self.favorite.all()
        posts = list(filter(lambda p: p.id == int(pid), favorites))
        # print(len(posts))
        if len(posts) > 0:
            return True
        else:
            return False


    def add_favorite(self,pid):
        p = Posts.query.get(pid)
        self.favorite.append(p)
        db.session.commit()




    def del_favorite(self,pid):
        p = Posts.query.get(pid)
        self.favorite.remove(p)
        db.session.commit()