예제 #1
0
class AlbumLove(db.Model):
    __tablename__ = 'album_love'

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    album_id = db.Column(db.Integer, db.ForeignKey('album.id'))
    addtime = db.Column(db.DATETIME, index=True, default=datetime.now)
예제 #2
0
class Comment(Base,db.Model):
    __tablename__ = 'comment'
    id = db.Column(db.Integer, primary_key=True)
    news_id = db.Column(db.Integer,db.ForeignKey('news.id'),index=True)
    user_id = db.Column(db.Integer,db.ForeignKey('user.id'),index=True)
    content = db.Column(db.String(255))
    def to_dict(self):
        com_list = {
            'id' : self.id,
            'news_id' : self.news_id,
            'user_id' : self.user_id,
            'content' : self.content,
            'create_time' : self.create_time.strftime('%Y-%m-%d %H:%M:%S'),
            'update_time' : self.update_time.strftime('%Y-%m-%d %H:%M:%S'),
            'user' : User.query.filter(User.id == self.user_id).first().to_dict()
        }
        return com_list



#
# if __name__ == '__main__':
#     db.drop_all()
#     db.create_all()
#     app.run()
예제 #3
0
class Album(db.Model):
    __tablename__ = "album"
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), nullable=False)  # 标题
    desc = db.Column(db.TEXT)  # 描述
    photonum = db.Column(db.Integer, default=0)  # 相册图片数量
    privacy = db.Column(
        db.String(20), default="public"
    )  # 是否私有private私有 protect_1粉丝好友可见 protect_2收藏者可见 public公开
    clicknum = db.Column(db.Integer, default=0)  # 相册浏览量
    favornum = db.Column(db.Integer, default=0)  # 相册收藏量
    uuid = db.Column(db.String(255), unique=True, nullable=False)  # uuid
    addtime = db.Column(db.DATETIME, index=True, default=datetime.now)  # 添加时间
    tag_id = db.Column(db.Integer, db.ForeignKey(
        "album_tag.id"))  # 定义外键 tag_id 来源于album_tag表中id一个标签可有多个相册
    user_id = db.Column(
        db.Integer,
        db.ForeignKey("user.id"))  # 定义外键 user_id 来源于 user表中id 一个用户可有多个相册
    favors = db.relationship(
        "AlbumFavor", backref="album")  # 定义相册与收藏相册关系 通过收藏表的album_id 反向查找到相册
    photos = db.relationship(
        "Photo", backref="album")  # 定义相册与图片关系 通过图片表的album_id 反向查找到相册

    def __repr__(self):
        return '<Album %r>' % (self.title)
예제 #4
0
class File(db.Model):

    __tablename__ = 'file'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    filename = db.Column(db.String(80), nullable=False)
    upload_time = db.Column(db.DateTime, default=datetime.datetime.now)
    size = db.Column(db.Float)
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))

    sid = db.Column(db.String(10), db.ForeignKey('student.sid'))
    owner = db.relationship('Student', uselist=False, backref=db.backref('file'))

    def __init__(self, sid, filename, upload_time, size, category_id):
        self.sid = sid
        self.filename = filename
        self.upload_time = upload_time
        self.size = size
        self.category_id = category_id

    def __str__(self):
        return 'File(sid=%s, filename=%s, upload_time=%s, size=%s, category_id=%s)'\
               % (self.sid, self.filename, self.upload_time, self.size, self.category_id)

    def __repr__(self):
        return str(self)
예제 #5
0
class Rating(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    lecture = db.relationship('Lecture', backref=db.backref('rating_lecture', cascade='all, delete-orphan', lazy='dynamic'))
    lecture_id = db.Column(db.Integer, db.ForeignKey(Lecture.id))
    user = db.relationship('User', backref=db.backref('rating_user', cascade='all, delete-orphan', lazy='dynamic'))
    user_id = db.Column(db.Integer, db.ForeignKey(User.id))

    total = db.Column(db.Integer, default =0)
    difficulty = db.Column(db.Integer, default =0)
    study_time = db.Column(db.Integer, default =0)
    attendance = db.Column(db.Integer, default =0)
    grade = db.Column(db.Integer, default =0)
    achievement = db.Column(db.Integer, default =0)
    opinion = db.Column(db.Text())
    joinDATE = db.Column(db.DateTime(),default = get_current_time)

    def ev2(self):
        ev2 = self.difficulty /5  * 100
        return ev2

    def ev3(self):
        ev3 = self.study_time /5  * 100
        return ev3

    def ev4(self):
        ev4 = self.attendance /5  * 100
        return ev4

    def ev5(self):
        ev5 = self.grade /5  * 100
        return ev5

    def ev6(self):
        ev6 = self.achievement /5  * 100
        return ev6
예제 #6
0
class PlanEQP(db.Model):  # tb_pln_eqp
    __tablename__ = 'tb_pln_eqp'
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)

    lot_id = db.Column(db.ForeignKey('tb_std_lot.id'), nullable=False)
    state_id = db.Column(db.String(30), nullable=False)
    start_t = db.Column(db.DateTime, default='Not Determind')
    end_t = db.Column(db.DateTime, default='Not Determind')
    prod_id = db.Column(db.ForeignKey('tb_std_prod.id'), nullable=False)
    lot_size = db.Column(db.ForeignKey('tb_ist_lot_size.id'), nullable=False)
    line_eqp_id = db.Column(db.ForeignKey('tb_std_line_eqp.id'),
                            nullable=False)

    lot = db.relationship('StdID3',
                          primaryjoin='PlanEQP.lot_id == StdID3.id',
                          backref='pln_eqp',
                          lazy=True)
    prod = db.relationship('StdID4',
                           primaryjoin='PlanEQP.prod_id == StdID4.id',
                           backref='pln_eqp',
                           lazy=True)
    size = db.relationship('LotSize',
                           primaryjoin='PlanEQP.lot_size == LotSize.id',
                           backref='pln_eqp',
                           lazy=True)
    line_eqp = db.relationship(
        'StdLineEQP',
        primaryjoin='PlanEQP.line_eqp_id == StdLineEQP.id',
        backref='pln_eqp',
        lazy=True)
예제 #7
0
class Logger(db.Model):
    __tablename__ = 'logger'

    id = db.Column(db.Integer, primary_key=True)
    sn = db.Column(db.String(10), index=True, unique=True, nullable=False)
    tipe = db.Column(db.String(12), default="arr")
    location_id = db.Column(db.Integer, db.ForeignKey('location.id'), nullable=True)
    tenant_id = db.Column(db.Integer, db.ForeignKey('tenant.id'), nullable=True)
    logger_periodik = db.relationship('Periodik', back_populates='logger', lazy='dynamic')
    temp_cor = db.Column(db.Float)
    humi_cor = db.Column(db.Float)
    batt_cor = db.Column(db.Float)
    tipp_fac = db.Column(db.Float)
    ting_son = db.Column(db.Float)  # dalam centi, tinggi sonar thd dasar sungai

    location = relationship('Location', backref='logger')
    tenant = relationship('Tenant', back_populates='loggers')

    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)
    # latest_sampling = db.Column(db.DateTime)
    # latest_up = db.Column(db.DateTime)
    # latest_id = db.Column(db.Integer)

    def __repr__(self):
        return '<Device {}>'.format(self.sn)
예제 #8
0
class Comment(db.Model):
	id = db.Column(db.Integer, primary_key = True)
	location_id =  db.Column(db.String(100), db.ForeignKey('Location.id'))
	content = db.Column(db.String(150))
	user_email = db.Column(db.String(255), db.ForeignKey('User.email'))	
	like = db.Column(db.Integer)
	dislike = db.Column(db.Integer)
	created_time = db.Column(db.DateTime(), default=db.func.now())
예제 #9
0
class Feedback(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
    api_id = db.Column(db.Integer, db.ForeignKey('api.id'))
    api_url = db.Column(db.String(500))
    feedback_content = db.Column(db.String(500))
    feedback_type = db.Column(db.Integer, default=1)
    create_time = db.Column(db.DateTime, default=datetime.now)
    has_solved = db.Column(db.Integer)
예제 #10
0
class ProductAttribute(db.Model):
    product_id = db.Column(db.Integer, db.ForeignKey("product.product_id"), primary_key=True)
    attribute_value_id = db.Column(db.Integer, db.ForeignKey("attribute_value.attribute_value_id"))

    def __init__(self, attribute_value_id):
        self.attribute_value_id = attribute_value_id

    def __repr__(self):
        return '{} {}'.format(self.product_id, self.attribute_value_id)
예제 #11
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text)
    body_html = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)
    is_ban = db.Column(db.Boolean, default=False)
    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    post_id = db.Column(db.Integer, db.ForeignKey('posts.id'))

    def __repr__(self):
        return '<Comment {}>'.format(self.user.username)

    def __str__(self):
        return self.user.username

    def hidden_comment(self):
        if not self.is_ban:
            self.is_ban = True
            db.session.add(self)
            return True
        return False

    def show_comment(self):
        if self.is_ban:
            self.is_ban = False
            db.session.add(self)
            return True
        return False

    @staticmethod
    def on_change_body(target, value, oldvalue, initiator):
        allowed_tags = [
            'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li',
            'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p'
        ]
        target.body_html = bleach.linkify(
            bleach.clean(markdown(value, output_format='html'),
                         tags=allowed_tags,
                         strip=True))

    def to_json(self):
        json_comment = {
            'body': self.body,
            'body_html': self.body,
            'timestamp': self.timestamp,
            'is_ban': self.is_ban,
            'post_url': url_for('api.get_post', id=self.post_id),
            'author_url': url_for('api.get_user', id=self.author_id)
        }
        return json_comment

    @staticmethod
    def form_json(json_comment):
        body = json_comment.get('body')
        if body is None or body == '':
            raise ValidationError('评论不能为空')
        return Comment(body=body)
예제 #12
0
class ProductCategoty(db.Model):
    product_id = db.Column(db.Integer, db.ForeignKey("product.product_id"), primary_key=True)
    category_id = db.Column(db.Integer, db.ForeignKey("category.category_id"))

    def __init__(self, category_id):
        self.category_id = category_id

    def __repr__(self):
        return '{} {}'.format(self.product_id, self.category_id)
예제 #13
0
class UserNotify(db.Model):
    __tablename__ = 'user_notification'

    id = db.Column('id', db.Integer, primary_key=True)
    user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
    changelog_id = db.Column('changelog_id', db.Integer,
                             db.ForeignKey('changelog.id'))
    read = db.Column('read', db.Integer)
    #changelog = db.relationship(Changelog, backref="memberships")
    user = db.relationship(User, backref="user_notification")
예제 #14
0
파일: model.py 프로젝트: hwnt/ken-dedes
class UserConditions(db.Model):
    """Class for storing information about conditions of users table

    Attributes:
        __tablename__: a string of table name
        id: an integer of certifications of provider's id
        user_id: an integer of a user's id.
        condition_id: an integer that condition's id.
        condition: a string that indicate the term of a condition.
        condition_details: a string that explain the condition.
        user_answer: a string that explain the user answer of a condition.
        created_at: a datetime that indicates when the row created
        updated_at: a datetime that indicates when the row last updated
        response_field: a dictionary that will be used to be a guide when extracting data from database's field
    """
    __tablename__ = "user_conditions"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    condition_id = db.Column(db.Integer,
                             db.ForeignKey('conditions.id'),
                             nullable=False)
    condition = db.Column(db.String(100), nullable=True)
    condition_details = db.Column(db.String(100), nullable=True)
    user_answer = db.Column(db.String(1000), nullable=True)
    created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
    updated_at = db.Column(db.DateTime,
                           default=db.func.current_timestamp(),
                           onupdate=db.func.current_timestamp())

    response_fields = {
        'id': fields.Integer,
        'user_id': fields.Integer,
        'condition_id': fields.Integer,
        'condition': fields.String,
        'condition_details': fields.String,
        'user_answer': fields.String,
    }

    def __init__(self, data):
        """Inits UserConditions with data that user inputted

        The data already validated on the resources function

        Args:
                user_id: an integer of a user's id.
                condition_id: an integer that condition's id.
                condition: a string that indicate the term of a condition.
                condition_details: a string that explain the condition.
                user_answer: a string that explain the user answer of a condition.
        """
        self.user_id = data['user_id']
        self.condition_id = data['condition_id']
        self.condition = data['condition']
        self.condition_details = data['condition_details']
        self.user_answer = data['user_answer']
예제 #15
0
class UserMessage(db.Model):
    __tablename__ = "user_message"
    id = db.Column(db.Integer, primary_key=True)
    admin_id = db.Column(db.Integer, db.ForeignKey('admin.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    category = db.Column(db.String(50), nullable=False)
    content = db.Column(db.String(600))
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 操作时间

    def __repr__(self):
        return "<UserMessage %r>" % self.id
예제 #16
0
class AlbumFavor(db.Model):
    __tablename__ = "album_favor"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(
        db.Integer,
        db.ForeignKey("user.id"))  # 定义外键 user_id 来源于 user表中id 一个用户可有多个收藏相册
    album_id = db.Column(db.Integer, db.ForeignKey(
        "album.id"))  # 定义外键 album_id 来源于 album表中id 通过album_id获取到当前相册
    addtime = db.Column(db.DATETIME, index=True, default=datetime.now)  # 收藏时间

    def __repr__(self):
        return '<AlbumFavor %r>' % (self.title)
예제 #17
0
class Moviecol(db.Model):
    """
    电影收藏
    """
    __tablename__ = "moviecol"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 电影id
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))  # 用户id
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Moviecol %r>" % self.id