示例#1
0
class VSProject(CRUDMixin, db.Model):
    """"
    项目模型
    """
    __tablename__ = 'tbl_sqlalchemy_project'

    # 项目访问权限  open: 公开  private: 私有
    access = db.Column(db.String(20), default='open')
    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)
    # many to many
    users = db.relationship(
        "VSUser",
        # 默认userlist=false为一对多关系,userlist=true为多对多关系
        uselist=True,
        secondary=project_user_association_table,
        backref="projects",
        # 关联的user表记录也会删除
        cascade="save-update, merge, delete")

    def __init__(self, **kwargs):
        super(VSProject, self).__init__(**kwargs)
示例#2
0
class VSGroup(CRUDMixin, db.Model):
    """
    组模型
    """
    __tablename__ = 'tbl_vsppm_group'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 组名称
    name = db.Column(db.String(128), nullable=False, unique=True)
    # 组负责人
    admin = db.Column(db.String(60))
    # 所属部门id
    department_id = db.Column(db.Integer, nullable=False)

    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)

    def __init__(self, **kwargs):
        super(VSGroup, self).__init__(**kwargs)

    def __repr__(self):
        return '<VSGroup #%s:%r>' % (self.id, self.name)
示例#3
0
class VSAcl(CRUDMixin, db.Model):
    """
    权限模型
    """
    __tablename__ = 'tbl_vsppm_acl'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 权限模块名称
    module = db.Column(db.String(128), nullable=False)
    # 权限模块功能方法名称
    method = db.Column(db.String(128), nullable=False)
    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)

    def __init__(self, **kwargs):
        super(VSAcl, self).__init__(**kwargs)

    def __repr__(self):
        return '<VSAcl #%s:%r:%r>' % (self.id, self.module, self.method)
示例#4
0
class VSRole(CRUDMixin, db.Model):
    """
    角色模型
    """
    __tablename__ = 'tbl_vsppm_role'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 角色名称
    name = db.Column(db.String(128), nullable=False, unique=True)
    # 角色描述
    role = db.Column(db.String(128), nullable=False)
    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)

    # 让VSRole和VSAcl产生关联
    # 因为VSAcl和VSRole表中间还有一个vsppm_user_role表,所以添加secondary
    # 正向引用是VSRole访问VSAcl,反向引用是从VSAcl访问表VSRole
    acls = db.relationship('VSAcl',
                           secondary=vsppm_role_acl,
                           backref=db.backref('roles'))

    def __init__(self, **kwargs):
        super(VSRole, self).__init__(**kwargs)

    def __repr__(self):
        return '<VSRole #%s:%r>' % (self.id, self.name)
示例#5
0
class Category(CRUDMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(250), nullable=False, unique=True)
    created_ts = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.current_timestamp(),)
    updated_ts = db.Column(db.DateTime(timezone=True),
                           onupdate=db.func.current_timestamp(),)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', backref='category')

    def __init__(self, name, user_id):
        self.name = name
        self.created_ts = datetime.datetime.now()
        self.user_id = user_id

    def __repr__(self):
        return '<Category %s>' % self.name

    @property
    def serialize(self):
        """Return object data in easily serializeable format"""
        return {
            'name': self.name,
            'id': self.id,
        }

    @classmethod
    def getCategories(cls):
        list = cls.query.order_by(asc(cls.name))
        return list

    @classmethod
    def getCurrentCategory(cls, category_id):
        category = cls.query.filter_by(id=category_id).one()
        return category
class User(CRUDMixin, UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), nullable=False, unique=True)
    email = db.Column(db.String(128), nullable=False, unique=True)
    pw_hash = db.Column(db.String(60), nullable=False)
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    remote_addr = db.Column(db.String(20))
    active = db.Column(db.Boolean())
    is_admin = db.Column(db.Boolean())

    def __init__(self, password, **kwargs):
        super(User, self).__init__(**kwargs)
        self.set_password(password)

    def __repr__(self):
        return '<User #%s:%r>' % (self.id, self.username)

    def set_password(self, password):
        hash_ = bcrypt.generate_password_hash(password, 10).decode('utf-8')
        self.pw_hash = hash_

    def check_password(self, password):
        return bcrypt.check_password_hash(self.pw_hash, password)
示例#7
0
文件: data.py 项目: Firelinux/FQM
class Serial(db.Model):
    __tablename__ = "serials"
    id = db.Column(db.Integer, primary_key=True)
    number = db.Column(db.Integer)
    timestamp = db.Column(db.DateTime(), index=True, default=datetime.utcnow)
    date = db.Column(db.Date(), default=datetime.utcnow().date)
    name = db.Column(db.String(300), nullable=True)
    n = db.Column(db.Boolean)
    p = db.Column(db.Boolean)
    # stands for proccessed , which be modified after been processed
    pdt = db.Column(db.DateTime())
    # Fix: adding pulled by feature to tickets
    pulledBy = db.Column(db.Integer)
    office_id = db.Column(db.Integer, db.ForeignKey('offices.id'))
    task_id = db.Column(db.Integer, db.ForeignKey('tasks.id'))

    def __init__(self,
                 number=100,
                 office_id=1,
                 task_id=1,
                 name=None,
                 n=False,
                 p=False,
                 pulledBy=0):
        self.number = number
        self.office_id = office_id
        self.task_id = task_id
        self.name = name
        self.n = n
        # fixing mass use tickets multi operators conflict
        self.p = p
        self.pulledBy = pulledBy
示例#8
0
class VSCompany(CRUDMixin, db.Model):
    """
    公司模型
    """
    __tablename__ = 'tbl_vsppm_company'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 公司名称
    name = db.Column(db.String(128), nullable=False, unique=True)
    # 公司负责人
    admin = db.Column(db.String(60))
    # 主页
    website = db.Column(db.String(128))

    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)

    def __init__(self, **kwargs):
        super(VSCompany, self).__init__(**kwargs)

    def __repr__(self):
        return '<VSCompany #%s:%r>' % (self.id, self.name)
class User(db.Model):
    __tablename__ = 'Users'
    Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    Name = db.Column(db.Text(), nullable=True)
    Email = db.Column(db.Text(), nullable=False)
    DisplayName = db.Column(db.Text(), nullable=True)
    FamilyName = db.Column(db.Text(), nullable=True)
    RegistrationDate = db.Column(db.DateTime(), nullable=False)
    LastVisit = db.Column(db.DateTime(), nullable=False)

    wished_markers = db.relationship('Marker',
                                     secondary=wishlist_markers,
                                     backref='wishers')
    owned_markers = db.relationship('Marker',
                                    secondary=my_markers,
                                    backref='owners')
    cart_markers = db.relationship('Cart', backref='user')

    def to_dict(self):
        data = {
            'id': self.Id,
            'email': self.Email,
            'name': self.Name,
            'display_name': self.DisplayName,
            'family_name': self.FamilyName,
            'registration_date': self.RegistrationDate,
            'last_visit': self.LastVisit
        }
        return data
示例#10
0
class User(CRUDMixin, UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(128), nullable=False, unique=True)
    pw_hash = db.Column(db.String(60), nullable=False)
    created_ts = db.Column(
        db.DateTime(timezone=True),
        server_default=db.func.current_timestamp(),
    )
    updated_ts = db.Column(
        db.DateTime(timezone=True),
        onupdate=db.func.current_timestamp(),
    )
    remote_addr = db.Column(db.String(20))
    active = db.Column(db.Boolean())
    is_admin = db.Column(db.Boolean())

    def __init__(self,
                 email,
                 password,
                 remote_addr,
                 active=False,
                 is_admin=False):
        self.email = email
        self.set_password(password)
        self.created_ts = datetime.datetime.now()
        self.remote_addr = remote_addr
        self.active = active
        self.is_admin = is_admin

    def __repr__(self):
        return '<User %s>' % self.email

    def set_password(self, password):
        self.pw_hash = bcrypt.generate_password_hash(password,
                                                     10).decode("utf-8")

    def check_password(self, password):
        return bcrypt.check_password_hash(self.pw_hash, password)

    @classmethod
    def stats(cls):
        active_users = cache.get('active_users')
        if not active_users:
            active_users = cls.query.filter_by(active=True).count()
            cache.set('active_users', active_users)

        inactive_users = cache.get('inactive_users')
        if not inactive_users:
            inactive_users = cls.query.filter_by(active=False).count()
            cache.set('inactive_users', inactive_users)

        return {
            'all': active_users + inactive_users,
            'active': active_users,
            'inactive': inactive_users
        }
示例#11
0
文件: user.py 项目: samreiah/flask
class User(db.Model):
   __tablename__ = 'users'
   id = db.Column('id', db.Integer, primary_key = True)
   ssnid = db.Column( db.Integer,  unique=True, nullable=False)
   customerid = db.Column(db.Integer,  unique=True, nullable=False)
   password = db.Column(db.String(255), nullable=False)
   name = db.Column(db.String(100))
   addrln1 = db.Column(db.String(200), nullable=True) 
   addrln2 = db.Column(db.String(200), nullable=True) 
   city = db.Column(db.String(50))
   state = db.Column(db.String(50))
   pin = db.Column(db.String(10))
   createdat = db.Column(db.DateTime(timezone=False), nullable=False, default=datetime.now)
   updatedat = db.Column(db.DateTime(timezone=False), nullable=False, default=datetime.now, onupdate=datetime.now)
示例#12
0
class VSUser(CRUDMixin, db.Model):
    """"
    账户模型
    """
    __tablename__ = 'tbl_sqlalchemy_user'

    account = db.Column(db.String(56), nullable=False, unique=True)
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    active = db.Column(db.Boolean(), default=True)

    def __init__(self, **kwargs):
        super(VSUser, self).__init__(**kwargs)
示例#13
0
class Recipe(CRUDMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(250), nullable=False)
    description = db.Column(db.String(250))
    image_url = db.Column(db.String(250))
    created_ts = db.Column(
        db.DateTime(timezone=True),
        server_default=db.func.current_timestamp(),
    )
    updated_ts = db.Column(
        db.DateTime(timezone=True),
        onupdate=db.func.current_timestamp(),
    )
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
    category = db.relationship('Category', backref='recipe')
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', backref='recipe')

    def __init__(self, name, user_id, category_id, description, image_url):
        self.name = name
        self.description = description
        self.image_url = image_url
        self.created_ts = datetime.datetime.now()
        self.user_id = user_id
        self.category_id = category_id

    def __repr__(self):
        return '<Recipe %s>' % self.name

    @property
    def serialize(self):
        """Return object data in easily serializeable format"""
        return {
            'name': self.name,
            'description': self.description,
            'image': self.image_url,
            'id': self.id
        }

    @classmethod
    def getRecipeList(self, category_id):
        list = self.query.filter_by(category_id=category_id)
        return list

    @classmethod
    def getCurrentRecipe(self, recipe_id):
        recipe = self.query.filter_by(id=recipe_id).one()
        return recipe
示例#14
0
class Files(db.Model):
    """
    Модель загруженных файлов
    """

    __tablename__ = 'files'

    id = db.Column(db.BigInteger,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True,
                   comment='Id файла')
    filename = db.Column(db.String(255), nullable=False, comment='Имя файла')
    content_type = db.Column(db.String(255),
                             nullable=False,
                             comment='Тип изображения')
    size = db.Column(db.BigInteger, nullable=False, comment='Размер в байтах')
    checksum = db.Column(db.String(255),
                         nullable=False,
                         unique=True,
                         comment='Сумма файла')
    created_at = db.Column(db.DateTime(),
                           nullable=False,
                           default=datetime.now(),
                           comment='Дата создания')

    def __repr__(self):
        return '<File %r>' % self.id
示例#15
0
文件: user.py 项目: fossabot/gage-web
class User(db.Model, UserMixin):
    """
    User model

    Arguments:
        id (int): Primary User Key
        username (str): Unique username as chosen by the user
        email (str): User's email address
        password_hash (str): Users hashed password
    """
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())

    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

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

    def __str(self):
        return self.username
示例#16
0
class Report(CRUDMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(250), nullable=False, unique=False)
    rd_query = db.Column(db.Text(), nullable=True)
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    last_run = db.Column(db.DateTime(timezone=True),
                         default=datetime.datetime.utcnow)

    def __init__(self, rd_query=None, **kwargs):
        super(Report, self).__init__(**kwargs)
        if rd_query:
            self.rd_query = rd_query

    def __repr__(self):
        return '<Report #%s:%r>' % (self.id, self.name)
示例#17
0
文件: data.py 项目: Firelinux/FQM
class Office(db.Model):
    __tablename__ = "offices"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Integer, unique=True)
    timestamp = db.Column(db.DateTime(), index=True, default=datetime.utcnow)
    prefix = db.Column(db.String(2))

    def __init__(self, name, prefix):
        self.name = name
        self.prefix = prefix
示例#18
0
文件: data.py 项目: Firelinux/FQM
class Task(db.Model):
    __tablename__ = "tasks"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(300))
    timestamp = db.Column(db.DateTime(), index=True, default=datetime.utcnow)
    office_id = db.Column(db.Integer, db.ForeignKey('offices.id'))

    def __init__(self, name, office_id):
        self.name = name
        self.office_id = office_id
示例#19
0
class User(CRUDMixin, UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64))
    phone_number = db.Column(db.String(64), unique=True, index=True, nullable=False)
    registration_date = db.Column(db.DateTime(), default=datetime.utcnow)
    password_hash = db.Column(db.String(128))
    account = db.Column(db.Float, default=10.00)
    role_id = db.Column(db.Integer,ForeignKey('roles.id'))

    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)
        if self.role is None:
            if self.phone_number == current_app.config['ADMIN_PHONENUMBER']:
                self.role = Role.query.filter_by(permissions=0xff).first()
            if self.role is None:
                self.role = Role.query.filter_by(default=True).first()

    @staticmethod
    def insert_user_roles():
        users = User.query.all()
        for user in users:
            if user.phone_number == current_app.config['ADMIN_PHONENUMBER']:
                user.role = Role.query.filter_by(permissions=0xff).first()
        db.session.commit()

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

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

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

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

    @staticmethod
    def by_phoneNumber(phone_number):
        return User.query.filter_by(phone_number=phone_number).first()

    @staticmethod
    def by_username(username):
        return User.query.filter_by(username=username).first()

    def deposit(self, amount):
        self.account += amount
        self.save()

    def withdraw(self, amount):
        self.account -= amount
        self.save()
示例#20
0
class Payment(db.Model):
    __tablename__ = 'payment'

    id = db.Column(db.Integer, primary_key=True)
    amount = db.Column(db.Float)
    currency = db.Column(db.String(3), nullable=False)
    description = db.Column(db.String(1024), nullable=False)
    created_at = db.Column(db.DateTime(timezone=True), default=db.func.now())

    def __str__(self):
        return 'Payment №%s' % self.id
示例#21
0
class User(BaseModel, UserMixin):
    __tablename__ = 'user'
    username = db.Column(db.String(255), unique=True, index=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean(), index=True)
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(63))
    current_login_ip = db.Column(db.String(63))
    login_count = db.Column(db.Integer)
    groups = db.relationship('Group',
                             secondary=groups_users,
                             backref=db.backref('users', lazy='dynamic'))
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def __repr__(self):
        return '<User %r>' % self.username
示例#22
0
class City(db.Model):
    """
    城市
    """
    __tablename__ = 'city'
    name = db.Column(db.String(20))
    desc = db.Column(db.String(200))
    courseorg_id = db.Column(db.Integer, db.ForeignKey('courseorg.id'))
    add_time = db.Column(db.DateTime(), default=datetime.now)

    def __repr__(self):
        return '<City {}>'.format(self.name)
示例#23
0
class Notification(SurrogatePK, Model):
    __tablename__ = 'notifications'
    name = Column(db.String(128), index=True)
    user_id = Column(db.Integer, db.ForeignKey('users.id'))
    payload = Column(db.JSON)
    timestamp = Column(db.DateTime(timezone=True), index=True, default=maya.now().datetime)

    def __init__(self, name: str, user: '******', payload: Dict) -> None:
        db.Model.__init__(self, name=name, user_id=user.id, payload=payload)

    def update(self, commit=True, **kwargs):
        kwargs['timestamp'] = maya.now().datetime()
        super().update(commit, **kwargs)
示例#24
0
class User(db.Model, UserMixin):
    """
    Модель пользователей
    """

    __tablename__ = 'users'

    id = db.Column(db.BigInteger,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True,
                   comment='ID пользователя')
    name = db.Column(db.String(255),
                     nullable=False,
                     comment='Имя пользователя')
    phone = db.Column(db.String(255),
                      nullable=False,
                      comment='Телефон пользователя')
    email = db.Column(db.String(255),
                      nullable=False,
                      unique=True,
                      comment='Email пользователя')
    password = db.Column(db.String(255),
                         nullable=False,
                         comment='Пароль пользователя')
    created_at = db.Column(db.DateTime(),
                           nullable=False,
                           default=datetime.now(),
                           comment='Дата создания')
    updated_at = db.Column(db.DateTime(),
                           nullable=False,
                           default=datetime.now(),
                           comment='Дата обновления')
    confirmed = db.Column(db.Boolean(), default=False, comment='Подтвержден?')

    def __repr__(self):
        return '<User %r>' % self.name
示例#25
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    username = db.Column(db.String(255))
    password = db.Column(db.String(255))
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(100))
    current_login_ip = db.Column(db.String(100))
    login_count = db.Column(db.Integer)
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role',
                            secondary='roles_users',
                            backref=db.backref('users', lazy='dynamic'))

    def __repr__(self):
        return '%r %r' % (self.username, self.email)

    def get_setup(self):
        return dict(key=self.id,
                    username=self.username,
                    email=self.email,
                    admin=self.is_admin())

    def change_admin(self):
        admin = Role.query.filter(Role.name == 'admin').first()
        if admin in self.roles:
            self.roles.remove(admin)
        else:
            self.roles.append(admin)

    def is_admin(self):
        roles = [each.name for each in self.roles]
        if 'admin' in roles:
            return True
        return False
示例#26
0
class CourseOrg(db.Model):
    __tablename__ = 'courseOrg'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    desc = db.Column(db.Text)
    category = db.Column(db.String(20), default='培训机构')
    tag = db.Column(db.String(10), default='国内名校')
    click_nums = db.Column(db.Integer, default=0)
    fav_nums = db.Column(db.Integer, default=0)
    address = db.Column(db.String(150))
    city = db.relationship('City', backref='user', lazy='dynamic')
    students = db.Column(db.Integer, default=0)
    add_time = db.Column(db.DateTime(), default=datetime.now)
    teachers = db.relationship('Teacher', backref='user', lazy='dynamic')
    courses = db.relationship('Course', backref='courseOrg', lazy='dynamic')

    def __repr__(self):
        return '<City {}>'.format(self.name)
示例#27
0
class Words(db.Model):
    __tablename__ = 'words'
    __table_args__ = (
        db.UniqueConstraint("view_id", "word"),
    )
    id = db.Column(db.Integer, primary_key=True)
    word = db.Column(db.String(255), nullable=False)
    translation = db.Column(db.String(255), nullable=False)
    url = db.Column(db.String(511), nullable=False)
    created_on = db.Column(db.DateTime(), default=datetime.utcnow)

    category_id = db.Column(db.Integer, db.ForeignKey('category.id', ondelete='CASCADE'), nullable=False)
    category = db.relationship('Category',  backref=db.backref('words', lazy=True))

    view_id = db.Column(db.Integer, db.ForeignKey('view.id', ondelete='CASCADE'), nullable=False)
    view = db.relationship('View',  backref=db.backref('views', lazy=True))

    def __repr__(self):
        return '<Words %r>' % self.word
示例#28
0
class KillHistory(Base):
    __tablename__ = 'kill_history'

    id = db.Column(db.Integer, primary_key=True)
    total_kills = db.Column(db.VARCHAR(6))
    time_stamp = db.Column(db.DateTime(timezone=True))

    @classmethod
    def get_total_kills(cls):
        record = cls.query.first()
        if record:
            total = int(record.total_kills)
            return total

    @classmethod
    def init_table(cls, **select):
        if cls.query.first():
            for record in cls.query.all():
                db.session.delete(record)
            db.session.commit()
        record = cls.create(**select)
        return record

    @classmethod
    def create(cls, **select):
        record = cls(**select)
        db.session.add(record)
        db.session.commit()
        return record

    @classmethod
    def update_record(cls, record=None, **insert):
        status_update = False
        record = record or cls.query.first()
        for key, value in insert.items():
            if getattr(record, key) != value:
                print(key, getattr(record, key))
                setattr(record, key, value)
                status_update = True
        if status_update:
            db.session.add(record)
            db.session.commit()
        return record
示例#29
0
class Teacher(db.Model):
    """
    讲师
    """
    __tablename__ = 'teacher'
    id = db.Column(db.Integer, primary_key=True)
    org_id = db.Column(db.Integer, db.ForeignKey('org.id'))
    name = db.Column(db.String(50))
    work_years = db.Column(db.Integer, default=0)
    work_company = db.Column(db.String(50))
    work_position = db.Column(db.String(50))
    age = db.Column(db.Integer, default=0)
    points = db.Column(db.String(50))  # 教学特点
    click_nums = db.Column(db.Integer, default=0)
    fav_nums = db.Column(db.Integer, default=0)
    courses = db.relationship('Course', backref='teacher', lazy='dynamic')
    add_time = db.Column(db.DateTime(), default=datetime.now)

    def __repr__(self):
        return '<Teacher {}>'.format(self.name)
示例#30
0
class Feature(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(64))
    description = db.Column(db.Text())
    client = db.Column(db.String(24))
    client_priority = db.Column(db.Integer())
    target_date = db.Column(db.DateTime())
    product_area = db.Column(db.String(24))

    def to_json(self):
        """Return object data in easily serializeable format"""
        return {
            'id': self.id,
            'title': self.title,
            'description': self.description,
            'client': self.client,
            'client_priority': self.client_priority,
            'target_date': dump_datetime(self.target_date),
            'product_area': self.product_area
        }

    def __repr__(self):
        return '<Feature {}>'.format(self.title)