コード例 #1
0
class UserModel(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80))
    email = db.Column(db.String(120))
    password = db.Column(db.String(80))

    def __init__(self, username, email, password):
        self.username = username
        self.password = password
        self.email = email

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    def json(self):
        return {'id': self.id, 'username': self.username, 'email': self.email}

    @classmethod
    def find_by_username(cls, username):
        return cls.query.filter_by(username=username).first()

    @classmethod
    def find_by_id(cls, _id):
        return cls.query.filter_by(id=_id).first()
コード例 #2
0
ファイル: models.py プロジェクト: hpf0532/corona
class User(db.Model):
    """用户表"""
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(48), unique=True, nullable=False)
    email = db.Column(db.String(64), unique=True, nullable=False)
    password = db.Column(db.String(128), nullable=False)
    bucket = db.Column(db.String(64), nullable=True, comment="用户桶名称")
    use_space = db.Column(db.Integer, default=0, comment="用户已使用空间")

    avatar_s = db.Column(db.String(64))
    avatar_m = db.Column(db.String(64))
    avatar_l = db.Column(db.String(64))

    # 邮箱确认字段
    confirmed = db.Column(db.Boolean, default=False)
    posts = db.relationship('Post', back_populates='author')

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

    def generate_avatar(self):
        avatar = Identicon()
        filenames = avatar.generate(text=self.username)
        self.avatar_s = filenames[0]
        self.avatar_m = filenames[1]
        self.avatar_l = filenames[2]
        db.session.commit()

    def __repr__(self):
        return '<User %r>' % self.username
コード例 #3
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    watch_queue = db.relationship('Series',
                                  secondary=association_table,
                                  backref=db.backref('queue', lazy='dynamic'))
コード例 #4
0
ファイル: models.py プロジェクト: hpf0532/corona
class Environment(db.Model):
    """环境信息"""
    __tablename__ = 'environment'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    name = db.Column(db.String(20), nullable=False)

    def __repr__(self):
        return '<Environment %r>' % self.name
コード例 #5
0
ファイル: models.py プロジェクト: hpf0532/corona
class PlayBookDetail(db.Model):
    __tablename__ = 'playbook_detail'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    playbook_id = db.Column(db.Integer, db.ForeignKey('playbook.id'), nullable=False)
    content = db.Column(db.Text)
    playbook = db.relationship('PlayBook', back_populates='detail')

    def __repr__(self):
        return '<PlayBookDetail %r>' % self.id
コード例 #6
0
class PostType(db.Model):
    __tablename__ = "post_type"

    id = db.Column(db.Integer, primary_key=True)
    type = db.Column(db.String, unique=True)
    active = db.Column(db.Boolean, default=True)

    def __str__(self):
        return str(self.type)
コード例 #7
0
ファイル: model.py プロジェクト: ccsfaiclub/violence-tracker
class Location(db.Model):
    __tablename__ = 'locations'

    id = db.Column(db.Integer, primary_key=True)

    city = db.Column(db.String)
    state = db.Column(db.String)

    lat = db.Column(db.Float)
    lon = db.Column(db.Float)
コード例 #8
0
ファイル: models.py プロジェクト: hpf0532/corona
class HostGroup(db.Model):
    """主机组表"""
    __tablename__ = 'host_group'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    name = db.Column(db.String(48), nullable=False, unique=True)
    description = db.Column(db.String(128))
    # 关系定义,不会在数据库中生成字段
    hosts = db.relationship('Host', back_populates='group')

    def __repr__(self):
        return '<HostGroup %r>' % self.name
コード例 #9
0
ファイル: classes.py プロジェクト: OliRsn/golf-app
class DrawGroup(db.Model):
    __tablename__ = 'draw_groups'

    id = db.Column(db.Integer, primary_key=True)
    game_id = db.Column(db.Integer, db.ForeignKey('games.id'))
    game = db.relationship("Game", back_populates='draw_groups')
    players = db.relationship('Player',
                              secondary=association_draw_groups_players,
                              back_populates='draw_groups')

    def __init__(self, game):
        self.game = game
コード例 #10
0
ファイル: models.py プロジェクト: hpf0532/corona
class Host(db.Model):
    """主机表"""
    __tablename__ = 'host'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    hostname = db.Column(db.String(60), nullable=False, unique=True)
    ip = db.Column(db.String(20), nullable=False, unique=True)
    port = db.Column(db.Integer, nullable=False, default=22)
    group_id = db.Column(db.Integer, db.ForeignKey('host_group.id'), nullable=True)
    # 关系标量
    group = db.relationship('HostGroup', back_populates='hosts')

    def __repr__(self):
        return '<Host %r>' % self.hostname
コード例 #11
0
ファイル: classes.py プロジェクト: OliRsn/golf-app
class Level(db.Model):
    __tablename__ = "levels"

    id = db.Column(db.Integer, primary_key=True)
    date_valid = db.Column(db.Date)
    level = db.Column(db.Integer)
    player_id = db.Column(db.Integer, db.ForeignKey('players.id'))
    player = db.relationship('Player', back_populates='levels')

    def __init__(self, player, date_valid, level):
        self.player = player
        self.date_valid = date_valid
        self.level = level
コード例 #12
0
class RevokedTokenModel(db.Model):
    __tablename__ = 'revoked_tokens'
    id = db.Column(db.Integer, primary_key=True)
    jti = db.Column(db.String(120))

    def add(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def is_jti_blacklisted(cls, jti):
        query = cls.query.filter_by(jti=jti).first()
        return bool(query)
コード例 #13
0
class Series(db.Model):
    __tablename__ = 'series'
    id = db.Column(db.Integer, primary_key=True)
    kitsu_id = db.Column(db.Integer, nullable=True)
    canonical_title = db.Column(db.String(120), nullable=True)
    en_title = db.Column(db.String(120), nullable=True)
    en_jp_title = db.Column(db.String(120), nullable=True)
    attributes = db.relationship('Attribute', uselist=False, backref='series')
    cover_image = db.relationship('CoverImage',
                                  uselist=False,
                                  backref='series')
    poster_image = db.relationship('PosterImage',
                                   uselist=False,
                                   backref='series')
コード例 #14
0
class InventoryModel(db.Model):
    __tablename__ = 'inventory'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    cost = db.Column(db.Float)
    retail = db.Column(db.Float)
    sku = db.Column(db.String)
    description = db.Column(db.Text)
    buy_button = db.Column(db.Text)

    image_id = db.Column(db.Integer, db.ForeignKey('image.id'))
    image = db.relationship("ImageModel", back_populates="inventory")

    def __str__(self):
        return self.name

    @hybrid_property
    def path(self):
        return form.thumbgen_filename(self.image.path)

    @hybrid_property
    def quantity(self):
        return round(
            InventoryStockModel.get_quantity(self.id) -
            SalesModel.get_quantity(self.id), 2)
コード例 #15
0
class Example(db.Model):
    """Example - to be changed
    """

    id = db.Column(db.Integer, primary_key=True)
    search_query = db.Column(db.String(1500), nullable=True)
    search_tags = db.Column(db.Text, nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))

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

    def __repr__(self):
        return "<Example %s>" % self.id
コード例 #16
0
ファイル: classes.py プロジェクト: OliRsn/golf-app
class Player(db.Model):
    __tablename__ = 'players'

    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String)
    last_name = db.Column(db.String)
    levels = db.relationship("Level", back_populates="player")
    draw_groups = db.relationship('DrawGroup',
                                  secondary=association_draw_groups_players,
                                  back_populates='players')

    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name
コード例 #17
0
class SalesModel(db.Model):
    __tablename__ = "sales"

    id = db.Column(db.Integer, primary_key=True)
    quantity = db.Column(db.Integer)
    sale_date = db.Column(db.DateTime(), default=datetime.datetime.utcnow())

    type_id = db.Column(db.Integer, db.ForeignKey("inventory.id"))
    type = db.relationship("InventoryModel")

    @classmethod
    def get_quantity(cls, foreign_id):
        quantity = cls.session.query(func.sum(
            cls.quantity)).filter(cls.type_id == foreign_id).scalar()
        return quantity if quantity else 0
コード例 #18
0
ファイル: model.py プロジェクト: mikeldking/violence-tracker
class Incident(db.Model):
    __tablename__ = 'incidents'

    id = db.Column(db.Integer, primary_key=True)
    links = db.Column(JSONB)
    state = db.Column(db.String)
    city = db.Column(db.String)
    description = db.Column(db.String)
    tags = db.Column(JSONB)
    name = db.Column(db.String, nullable=False)
    date = db.Column(db.String)
    date_text = db.Column(db.String)
コード例 #19
0
class Post(db.Model):
    __tablename__ = "post"
    __repr_attr__ = ("id", "type")

    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text)
    active = db.Column(db.Boolean, default=True)

    # Type information
    type = db.relationship(PostType, secondary=type_association)

    # Connect the post to its user
    user = db.relationship(user_model,
                           secondary=user_association,
                           backref=db.backref('posts', lazy="dynamic"),
                           lazy="dynamic")
コード例 #20
0
class Game(db.Model):
    __tablename__ = 'games'

    id = db.Column(db.Integer, primary_key=True)
    golf = db.Column(db.String)
    game_format = db.Column(db.String)
    game_date = db.Column(db.Date)
    game_details = db.relationship("GameDetails",
                                   back_populates="game",
                                   uselist=False)
    draw_groups = db.relationship("DrawGroup", back_populates="game")

    def __init__(self, golf, game_format, game_date):
        self.golf = golf
        self.game_format = game_format
        self.game_date = game_date
コード例 #21
0
class User(db.Model):
    """User model
    """

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(255), nullable=False)
    active = db.Column(db.Boolean, default=True)
    is_admin = db.Column(db.Boolean, default=False)
    examples = db.relationship("Example", backref="user", lazy=True)

    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)
        self.password = pwd_context.hash(self.password)

    def __repr__(self):
        return "<User %s>" % self.email
コード例 #22
0
ファイル: models.py プロジェクト: hpf0532/corona
class Post(db.Model):
    """wiki文章表"""
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    title = db.Column(db.String(60), nullable=False, comment="文章标题")
    desc = db.Column(db.String(180), comment="文章摘要")
    body = db.Column(db.Text)
    published = db.Column(db.Boolean, nullable=False, default=False, comment="文档发布状态")
    create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment="创建时间")
    update_time = db.Column(db.DateTime, default=datetime.datetime.now, comment="更新时间")
    # 与分类表关联
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
    category = db.relationship('Category', back_populates='posts')
    # 作者
    author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    author = db.relationship('User', back_populates='posts')
コード例 #23
0
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(100), nullable=False)
    firstname = db.Column(db.String(100), nullable=False)
    lastname = db.Column(db.String(100), nullable=False)
    password = db.Column(db.String(200), nullable=False)
    email = db.Column(db.String(100), nullable=False)
    language = db.Column(db.String())
コード例 #24
0
class ResourceMixin(object):
    # Keep track when records are created and updated.
    created_on = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)
    updated_on = db.Column(db.DateTime,
                           default=datetime.datetime.utcnow,
                           onupdate=datetime.datetime.utcnow)

    def save(self):
        """
        Save a model instance.

        :return: Model instance
        """
        db.session.add(self)
        db.session.commit()

        return self

    def delete(self):
        """
        Delete a model instance.

        :return: db.session.commit()'s result
        """
        db.session.delete(self)
        return db.session.commit()

    def __str__(self):
        """
        Create a human readable version of a class instance.

        :return: self
        """
        obj_id = hex(id(self))
        columns = self.__table__.c.keys()

        values = ', '.join("%s=%r" % (n, getattr(self, n)) for n in columns)
        return '<%s %s(%s)>' % (obj_id, self.__class__.__name__, values)
コード例 #25
0
class PosterImage(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    large = db.Column(db.Text)
    original = db.Column(db.Text)
    small = db.Column(db.Text)
    tiny = db.Column(db.Text)
    series_id = db.Column(db.Integer,
                          db.ForeignKey('series.id'),
                          nullable=False)
コード例 #26
0
ファイル: database.py プロジェクト: shychrdw/trondata
class SurrogatePK(object):
    """A mixin that adds a surrogate integer 'primary key' column named ``id``
    to any declarative-mapped class."""

    __table_args__ = {'extend_existing': True}

    id = db.Column(db.Integer, primary_key=True)

    @classmethod
    def get_by_id(cls, record_id):
        """Get record by ID."""
        if any((isinstance(record_id, basestring)
                and record_id.isdigit(), isinstance(record_id,
                                                    (int, float))), ):
            return cls.query.get(int(record_id))
        return None
コード例 #27
0
class UserModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True)
    password = db.Column(db.String(512), nullable=False)
    favourite_articles = db.Column(db.ARRAY(db.Integer), default=[])
    favourite_services = db.Column(db.ARRAY(db.String), default=[])
    has_been_initialized = db.Column(db.Boolean, default=False)
    show_fav_as_default = db.Column(db.Boolean, default=False)

    def commit_db(self):
        db.session.commit()

    def delete_user(self):
        self.query.delete()
        self.commit_db()
コード例 #28
0
ファイル: models.py プロジェクト: hpf0532/corona
class PlayBook(db.Model):
    """playbook表"""
    __tablename__ = 'playbook'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    name = db.Column(db.String(48), nullable=False, unique=True)
    author = db.Column(db.String(20), nullable=False)
    information = db.Column(db.String(48), nullable=False, unique=True)
    is_env = db.Column(db.Boolean, nullable=False, default=False)
    upload = db.Column(db.Boolean, nullable=False, default=False)
    step = db.Column(db.Integer, nullable=True)

    # 建立一对一关系
    detail = db.relationship('PlayBookDetail', back_populates='playbook', uselist=False, cascade='all')

    def __repr__(self):
        return '<PlayBook %r>' % self.name
コード例 #29
0
ファイル: models.py プロジェクト: hpf0532/corona
class FileRepository(db.Model):
    """文件库"""
    __tablename__ = 'file_repository'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    file_type_choices = (
        (1, '文件'),
        (2, '文件夹')
    )
    file_type = db.Column(ChoiceType(file_type_choices, db.Integer()), nullable=True, comment="文件类型")
    name = db.Column(db.String(64), nullable=False, comment="文件/文件夹名称")
    key = db.Column(db.String(128), nullable=True, comment="文件存储在OSS中的KEY")
    file_size = db.Column(db.Integer, nullable=True, comment="文件大小/字节")
    file_path = db.Column(db.String(255), nullable=True, comment="文件路径")
    parent_id = db.Column(db.Integer, db.ForeignKey('file_repository.id'), nullable=True, comment="父级目录id")
    update_datetime = db.Column(db.DateTime, default=datetime.datetime.now, comment="更新时间")

    user = db.relationship('User')
    parent = db.relationship('FileRepository', remote_side=[id], back_populates='childs')
    childs = db.relationship('FileRepository', back_populates='parent', cascade='all')

    def __repr__(self):
        return "<{}: {}>".format(self.__class__.__name__, self.id)
コード例 #30
0
ファイル: models.py プロジェクト: hpf0532/corona
class Options(db.Model):
    """playbook选项参数"""
    __tablename__ = 'options'
    id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
    name = db.Column(db.String(48), nullable=False)
    content = db.Column(db.Text, nullable=True)
    playbook_id = db.Column(db.Integer, db.ForeignKey('playbook.id'), nullable=False)
    env_id = db.Column(db.Integer, db.ForeignKey('environment.id'))
    url = db.Column(db.String(128), nullable=True)

    playbook = db.relationship('PlayBook')
    env = db.relationship('Environment')

    def __repr__(self):
        return '<Options %r>' % self.name