Exemple #1
0
class Photo(db.Model):
    __tablename__ = 'photo'

    id = db.Column(db.INTEGER,
                   primary_key=True,
                   nullable=False,
                   comment='photo id',
                   autoincrement=True)
    title = db.Column(db.String(40),
                      nullable=False,
                      comment='photo title',
                      default='""')
    description = db.Column(db.String(300),
                            nullable=False,
                            comment='photo description',
                            default='""')
    save_path = db.Column(db.String(200),
                          nullable=False,
                          comment='photo save path')
    save_path_s = db.Column(db.String(200),
                            nullable=False,
                            comment='small size')
    create_time = db.Column(db.DateTime, default=datetime.now)
    level = db.Column(db.INTEGER, default=0)
    tags = db.relationship('Tag', secondary=tagging, back_populates='photos')
    comments = db.relationship('PhotoComment',
                               back_populates='photo',
                               cascade='all')
    likes = db.relationship('LikePhoto', back_populates='photo', cascade='all')
Exemple #2
0
class BlogType(db.Model):
    __tablename__ = 'blog_type'

    id = db.Column(db.INTEGER,
                   primary_key=True,
                   nullable=False,
                   comment='blog type id',
                   autoincrement=True)
    name = db.Column(db.String(20),
                     unique=True,
                     nullable=False,
                     comment='blog type name')
    counts = db.Column(db.INTEGER,
                       nullable=False,
                       default=0,
                       comment='this type blog counts')
    description = db.Column(db.String(300), nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)

    blogs = db.relationship('Blog', back_populates='blog_types')

    def __init__(self, name, description):
        self.name = name
        self.description = description

    def __repr__(self):
        return '<name> %s <description> %s' % (self.name, self.description)
Exemple #3
0
class Notification(db.Model):
    __tablename__ = 'notification'

    id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    type = db.Column(db.INTEGER, default=0, comment='notification type 0 blog 1 photo')
    target_id = db.Column(db.INTEGER)
    target_name = db.Column(db.String(200))
    send_user = db.Column(db.String(40))
    receive_id = db.Column(db.INTEGER, db.ForeignKey('user.id'))
    msg = db.Column(db.String(400))
    read = db.Column(db.INTEGER, default=0, comment='is readed? 0 no 1 yes')
    timestamp = db.Column(db.DateTime, default=datetime.now)

    receive_user = db.relationship('User', back_populates='receive_notify')
Exemple #4
0
class Role(db.Model):
    __tablename__ = 'role'

    id = db.Column(db.INTEGER, primary_key=True, nullable=False, comment='role id', autoincrement=True)
    name = db.Column(db.String(50), nullable=False, unique=True, comment='role name')
    permission = db.Column(db.String(50), nullable=False, unique=True)

    users = db.relationship('User', back_populates='roles')

    @staticmethod
    def init_role():
        admin = Role(name='ADMIN', permission='ANY')
        db.session.add(admin)
        usr = Role(name='USER', permission='SOME')
        db.session.add(usr)
        db.session.commit()
Exemple #5
0
class Blog(db.Model):
    __tablename__ = 'blog'

    id = db.Column(db.INTEGER,
                   primary_key=True,
                   nullable=False,
                   comment='blog id',
                   autoincrement=True)
    title = db.Column(db.String(200),
                      nullable=False,
                      comment='blog title',
                      index=True)
    type_id = db.Column(db.INTEGER, db.ForeignKey('blog_type.id'))
    pre_img = db.Column(db.String(200),
                        nullable=False,
                        comment='blog preview image')
    introduce = db.Column(db.String(255),
                          nullable=False,
                          comment='blog introduce text',
                          index=True)
    content = db.Column(db.TEXT, nullable=False, comment='blog content')
    is_private = db.Column(db.INTEGER,
                           nullable=False,
                           default=0,
                           comment='is private? 0:no 1:yes')
    create_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    update_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    read_times = db.Column(db.INTEGER, default=0)
    delete_flag = db.Column(db.INTEGER, db.ForeignKey('states.id'))
    is_top = db.Column(db.INTEGER, default=0, comment='is it set top?')

    blog_types = db.relationship('BlogType', back_populates='blogs')
    comments = db.relationship('BlogComment',
                               back_populates='blog',
                               cascade='all')
    state = db.relationship('States', back_populates='blog')
    blog_history = db.relationship('BlogHistory',
                                   back_populates='blog',
                                   cascade='all')

    def __repr__(self):
        return '<title> %s <introduce> %s' % (self.title, self.introduce)
Exemple #6
0
class States(db.Model):
    __tablename__ = 'states'

    id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    name = db.Column(db.String(40))
    timestamp = db.Column(db.DateTime, default=datetime.now)

    blog = db.relationship('Blog', back_populates='state')
    user = db.relationship('User', back_populates='statuses')
    flink = db.relationship('FriendLink', back_populates='status')

    @staticmethod
    def init_states():
        s1 = States(name='正常')
        s2 = States(name='禁用')
        db.session.add(s1)
        db.session.add(s2)
        db.session.commit()