Example #1
0
class Thread(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80))
    description = db.Column(db.String(255))
    created_by = db.Column(db.String(80))
    date_created = db.Column(db.DateTime(), default=datetime.utcnow)
    replies = db.relationship("Reply", backref='thread', lazy='dynamic')
Example #2
0
class About(BaseModel):
    __tablename__ = "about"

    title = db.Column(db.VARCHAR(250), nullable=False)
    sub_title = db.Column(db.TEXT, nullable=False)
    button_text = db.Column(db.VARCHAR(50), nullable=False)
    button_url = db.Column(db.TEXT, nullable=True)
Example #3
0
class UserToRole(db.Model):
    """用户-角色多对多关系表"""
    __tablename__ = "permission_user_to_role"
    u_id = db.Column(db.Integer, db.ForeignKey("users.id"), primary_key=True)
    r_id = db.Column(db.Integer,
                     db.ForeignKey("permission_role.id"),
                     primary_key=True)
Example #4
0
class Record(db.Model):
    """记录表"""
    __tablename__ = 'records'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ip = db.Column(db.String(20), nullable=False, unique=True)

    ips = db.relationship('Article', secondary=UserLikeArticle.__table__)
Example #5
0
class ServiceItem(BaseModel):
    __tablename__ = "serviceitem"
    icon = db.Column(db.TEXT, nullable=True)
    title = db.Column(db.TEXT, nullable=True)
    text = db.Column(db.TEXT, nullable=True)
    service_id = db.Column(db.INT, db.ForeignKey('services.id'))
    service = db.relationship('Service', backref='services', lazy=True)
Example #6
0
class Flink(db.Model):
    """友情链接表"""
    __tablename__ = 'flinks'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)

    name = db.Column(db.String(20), nullable=False)
    url = db.Column(db.String(100), nullable=False)
Example #7
0
class Menu(BaseModel):
    __tablename__ = "menu"
    name = db.Column(db.VARCHAR(50), nullable=False)
    url = db.Column(db.TEXT, nullable=True)

    def __init__(self, name=None, url=None):
        self.name = name
        self.url = url
Example #8
0
class PermissionToRole(db.Model):
    """权限-角色多对多关系表"""
    __tablename__ = 'permission_to_role'
    p_id = db.Column(db.Integer,
                     db.ForeignKey("permission_permission.id"),
                     primary_key=True)
    r_id = db.Column(db.Integer,
                     db.ForeignKey("permission_role.id"),
                     primary_key=True)
Example #9
0
class ArticleToTag(db.Model):
    """标签与文章关系表"""
    __tablename__ = 'article_to_tag'
    article_id = db.Column(db.Integer,
                           db.ForeignKey('article_article.id'),
                           primary_key=True)
    tag_id = db.Column(db.Integer,
                       db.ForeignKey('article_tag.id'),
                       primary_key=True)
Example #10
0
class Permission(db.Model):
    """权限表"""
    __tablename__ = 'permission_permission'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
    strcode = db.Column(db.String(50), nullable=False)

    roles = db.relationship("Role", secondary=PermissionToRole.__table__)

    menu = db.relationship("Menu", uselist=False)

    handler = db.relationship("Handler", uselist=False)
Example #11
0
class UserLikeArticle(db.Model):
    """点赞表"""
    __tablename__ = 'article_user_like'

    ip_id = db.Column(db.Integer,
                      db.ForeignKey('records.id'),
                      nullable=False,
                      primary_key=True)
    article_id = db.Column(db.Integer,
                           db.ForeignKey('article_article.id'),
                           nullable=False,
                           primary_key=True)
Example #12
0
class Role(db.Model):
    """角色表"""
    __tablename__ = 'permission_role'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)

    #角色表和用户表多对多查询关系
    users = db.relationship("User", secondary=UserToRole.__table__)

    #角色表和权限表多对多查询关系
    permissions = db.relationship("Permission",
                                  secondary=PermissionToRole.__table__)
Example #13
0
class Tag(db.Model):
    """标签表"""
    __tablename__ = 'article_tag'
    id = db.Column(db.Integer, primary_key=True)
    uuid = db.Column(db.String(36), unique=True, default=lambda: str(uuid4()))
    name = db.Column(
        db.String(50),
        unique=True,
    )
    create_time = db.Column(db.DateTime, index=True, default=datetime.now)

    # 建立orm查询关系,标签表与文章表的多对多关系
    articles = db.relationship('Article', secondary=ArticleToTag.__table__)
Example #14
0
class Category(db.Model):
    """分类表"""
    __tablename__ = 'article_category'
    id = db.Column(db.Integer, primary_key=True)
    uuid = db.Column(db.String(36), unique=True, default=lambda: str(uuid4()))
    name = db.Column(
        db.String(50),
        unique=True,
    )
    create_time = db.Column(db.DateTime, index=True, default=datetime.now)

    # 建立orm查询关系,分类表与文章表的一对多关系
    articles = db.relationship('Article', backref='category')
Example #15
0
class Header(BaseModel):
    __tablename__ = "header"

    background_image = db.Column(db.TEXT, nullable=True)
    title = db.Column(db.TEXT, nullable=False)
    sub_title = db.Column(db.TEXT, nullable=False)
    button_text = db.Column(db.VARCHAR(50), nullable=False)
    button_url = db.Column(db.TEXT, nullable=True)

    def __init__(self, background_image, title, sub_title, button_text,
                 button_url):
        self.background_image = background_image
        self.title = title
        self.sub_title = sub_title
        self.button_text = button_text
        self.button_url = button_url
Example #16
0
class Menu(db.Model):
    """
    页面中元素菜单显示对应的权限
    """
    __tablename__ = 'permission_menu'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
    p_id = db.Column(db.Integer,
                     db.ForeignKey("permission_permission.id"),
                     unique=True,
                     nullable=False)

    permission = db.relationship("Permission", uselist=False)

    @classmethod
    def by_name(cls, name):
        return cls.query.filter_by(name=name).first()
Example #17
0
class User(db.Model):
    """用户表"""
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    uuid = db.Column(db.String(36),
                     unique=True,
                     nullable=False,
                     default=lambda: str(uuid4()))
    username = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50))
    _password = db.Column('password', db.String(200))
    last_login_time = db.Column(db.DateTime)
    login_num = db.Column(db.Integer, default=0)
    create_time = db.Column(db.DateTime)
    avatar_hash = db.Column(db.String(32))

    articles = db.relationship('Article', backref='users')

    comments = db.relationship('Comment', backref='users')

    roles = db.relationship("Role", secondary=UserToRole.__table__)

    def _hash_password(self, password):
        return pbkdf2.crypt(password, iterations=0x2537)

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

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

    def auth_password(self, other_password):
        if self._password is not None:
            return self.password == pbkdf2.crypt(other_password, self.password)
        else:
            return False

    def gravatar_hash(self):
        return hashlib.md5(self.email.lower().encode('utf-8')).hexdigest()

    def gravatar(self, size=100, default='identicon', rating='g'):
        url = 'https://secure.gravatar.com/avatar'
        hash = self.avatar_hash or self.gravatar_hash()
        return '{url}/{hash}?s={size}&d={default}&r={rating}'.format(
            url=url, hash=hash, size=size, default=default, rating=rating)

    @classmethod
    def by_emial(cls, email):
        return cls.query.filter_by(email=email).first()
Example #18
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    price = db.Column(db.Integer)
    stock = db.Column(db.Integer)
    description = db.Column(db.String(500))
    image = db.Column(db.String(100))
    type = db.Column(db.String(25))
    live = db.Column(db.Boolean)
    orders = db.relationship('Order', backref='product', lazy=True)
Example #19
0
class Cars(db.Model):
    __tablename__ = "cars"
    car_id = db.Column(db.Integer, primary_key=True)
    model = db.Column(db.String(length=16), nullable=False)
    mileage = db.Column(db.Integer)
    manufacturer = db.Column(db.String(30), nullable=False)
    vin = db.Column(db.String(20), unique=True, nullable=False)
    gearbox = db.Column(db.String(10))
    price = db.Column(db.Integer, nullable=False)
    power = db.Column(db.Integer)
    volume = db.Column(db.Float(4))
    dealer_id = db.Column(db.Integer,
                          ForeignKey("dealers.dealer_id"),
                          nullable=False)
    relationship("Dealers", foreign_keys=[dealer_id])

    def __init__(self, model, mileage, manufacturer, vin, gearbox, price,
                 power, volume, dealer_id):
        self.model = model
        self.mileage = mileage
        self.manufacturer = manufacturer
        self.vin = vin
        self.gearbox = gearbox
        self.price = price
        self.power = power
        self.volume = volume
        self.dealer_id = dealer_id

    def __repr__(self):
        return f"{self.vin}"

    def save_to_db(self) -> None:
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self) -> None:
        db.session.delete(self)
        db.session.commit()
Example #20
0
class User(db.Model, UserMixin):
    """The user model database"""
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    username = db.Column(db.String(255), unique=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
    roles = db.relationship("Role",
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))
    replies = db.relationship("Reply", backref="user", lazy="dynamic")
Example #21
0
class BaseModel(db.Model):
    __abstract__ = True
    id = db.Column(db.INT, primary_key=True, autoincrement=True)

    @classmethod
    def all(cls):
        return cls.query.all()

    @classmethod
    def filter(cls):
        return cls.query.filter_by().first()

    def save(self):
        db.session.add(self)
        db.session.commit()
Example #22
0
class Dealers(db.Model):
    __tablename__ = "dealers"
    dealer_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(length=40), nullable=False)
    ogrn = db.Column(db.String(18), unique=True, nullable=False)
    address = db.Column(db.String(50))
    segment = db.Column(db.String(10))
    telephone = db.Column(db.String(12))
    url = db.Column(db.String(32))
    loans = db.Column(db.Boolean)
    loan_broker = db.Column(db.String(40))
    used_cars = db.Column(db.Boolean)
    relationship("Cars")

    def __init__(self, name, ogrn, address, segment, telephone, url, loans,
                 loan_broker, used_cars):
        self.name = name
        self.ogrn = ogrn
        self.address = address
        self.segment = segment
        self.telephone = telephone
        self.url = url
        self.loans = loans
        self.loan_broker = loan_broker
        self.used_cars = used_cars

    def __repr__(self):
        return f"{self.name}"

    def save_to_db(self) -> None:
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self) -> None:
        db.session.delete(self)
        db.session.commit()
Example #23
0
class User(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    username = db.Column(db.String(80), unique=True)
    password = db.Column(db.String(255))
    image = db.Column(db.String(255))
    joined_date = db.Column(db.String(255))
    tweets = db.relationship("Tweets", backref='user', lazy='dynamic')
    following = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id),
                                secondaryjoin=(followers.c.followee_id == id),backref=db.backref('followers', lazy='dynamic'),
                                lazy='dynamic')
    my_followers = db.relationship('User', secondary=followers, primaryjoin=(followers.c.followee_id == id),
                                secondaryjoin=(followers.c.follower_id == id),
                                backref=db.backref('followees', lazy='dynamic'), lazy='dynamic')
Example #24
0
class Comment(db.Model):
    """一级评论表"""
    __tablename__ = 'article_comment'
    id = db.Column(db.Integer, primary_key=True)
    uuid = db.Column(db.String(36),
                     unique=True,
                     nullable=False,
                     default=lambda: str(uuid4()))
    content = db.Column(db.Text)
    create_time = db.Column(db.DateTime, index=True, default=datetime.now)
    # 与文章表建立外键关系
    article_id = db.Column(
        db.Integer, db.ForeignKey('article_article.id', ondelete="CASCADE"))
    # 与用户表建立外键关系
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
Example #25
0
class Reply(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    thread_id = db.Column(db.Integer, db.ForeignKey('thread.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    message = db.Column(db.String(200))
    date_created = db.Column(db.DateTime(), default=datetime.utcnow)
Example #26
0
from create_app import db
from tweets.models import Tweets

followers = db.Table('followers',
                     db.Column('follower_id', db.Integer, db.ForeignKey('user.id')),
                     db.Column('followee_id', db.Integer, db.ForeignKey('user.id')))


class User(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    username = db.Column(db.String(80), unique=True)
    password = db.Column(db.String(255))
    image = db.Column(db.String(255))
    joined_date = db.Column(db.String(255))
    tweets = db.relationship("Tweets", backref='user', lazy='dynamic')
    following = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id),
                                secondaryjoin=(followers.c.followee_id == id),backref=db.backref('followers', lazy='dynamic'),
                                lazy='dynamic')
    my_followers = db.relationship('User', secondary=followers, primaryjoin=(followers.c.followee_id == id),
                                secondaryjoin=(followers.c.follower_id == id),
                                backref=db.backref('followees', lazy='dynamic'), lazy='dynamic')


Example #27
0
class AdminLogin(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user = db.Column(db.String(5))
    password = db.Column(db.String(255))
Example #28
0
class Contact(BaseModel):
    __tablename__ = "Contacs"
    icon = db.Column(db.VARCHAR(50), nullable=True)
    text = db.Column(db.TEXT, nullable=True)
Example #29
0
class Footer(BaseModel):
    __tablename__ = "footer"
    title = db.Column(db.VARCHAR(50), nullable=False)
    text = db.Column(db.TEXT, nullable=True)
    copyrigh = db.Column(db.TEXT, nullable=True)
Example #30
0
class Portfolio(BaseModel):
    __tablename__ = "portfolio"
    image = db.Column(db.TEXT, nullable=True)
    project_name = db.Column(db.VARCHAR(50), nullable=False)