class ArticleType(db.Model): __tablename__ = 'article_type' id = db.Column(db.Integer, autoincrement=True, primary_key=True) types = db.Column(db.String(32)) create_user = db.Column(db.String(32)) create_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
class Follow(db.Model): __tablename__ = 'follows' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer) user_id_following = db.Column(db.Integer) def get_follow(follow_id): follow = Follow.query.get(follow_id) return follow def get_all_followings(user_id): follows = Follow.query.filter(user_id=user_id).all() return follows def get_all_followed(user_id_following): follows = Follow.query.filter( user_id_following=user_id_following).all() return follow def add_follow(user_id, user_id_following): follow = Follow(user_id=user_id, user_id_following=user_id_followed) db.session.add(follow) db.session.commit() def delete_follow(follow_id): follow = Follow.query.get(follow_id) db.session.delete(follow) db.session.commit()
class Tag(db.Model): __tablename__ = 'tags' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(200), unique=True) def __repr__(self): return '<tags %r>' % (self.name)
class GoingoutApplyModel(BaseApplyModel): __tablename__ = 'apply_goingout' go_out_date: datetime = db.Column(db.DateTime()) come_back_date: datetime = db.Column(db.DateTime()) reason: str = db.Column(db.String()) status: str = db.Column(db.Enum(GOINGOUT_STATUS))
class PointItemModel(db.Model): __tablename__ = 'point_item' id: int = db.Column(db.Integer(), primary_key=True) reason: str = db.Column(db.String()) point: int = db.Column(db.Integer()) type: bool = db.Column(db.Boolean())
class User(db.Model): __tablename__ = 'user' username = db.Column(db.String(50), primary_key=True) firstname = db.Column(db.String(100), nullable=False) lastname = db.Column(db.String(100), nullable=False) email = db.Column(db.String(30), nullable=False) password = db.Column(db.String(100), nullable=False)
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20), nullable=False) password = db.Column(db.String(20)) email = db.Column(db.String(30))
class Postlike(db.Model): __tablename__ = 'postlikes' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer) post_id = db.Column(db.Integer) def get_postlike(pl_id): postlike = Postlike.query.get(pl_id) return postlike def get_all_postlike(user_id): postlikes = Postlike.query.filter(user_id=user_id).all() return postlikes #get user who likes the same post def get_all_user_likepost(post_id): postlikes = Postlike.query.filter(post_id=post_id) return postlikes def add_postlike(user_id, post_id): postlike = Postlike(user_id=user_id, post_id=post_id) db.session.add(postlike) db.session.commit() def delete_postlike(post_id): postlike = Postlike.query.get(post_id) db.session.delete(postlike) db.session.commit()
class Payment(db.Model): __tablename__ = 'payments' id = db.Column(db.Integer, primary_key=True) firstname = db.Column(db.String(255)) lastname = db.Column(db.String(255)) mode = db.Column(db.String(255)) reserve_id = db.Column(db.Integer) def __init__(self, firstname, lastname, mode, reserve_id): self.firstname = firstname self.lastname = lastname self.mode = mode self.reserve_id = reserve_id def store(self): db.session.add(self) return db.session.commit() def update(self, firstname, lastname, mode, reserve_id): self.firstname = firstname self.lastname = lastname self.mode = mode self.reserve_id = reserve_id return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit()
class Rooms(db.Model): __tablename__ = 'rooms' id = db.Column(db.Integer, primary_key=True) room_type = db.Column(db.String(255)) status = db.Column(db.String(255)) price = db.Column(db.Integer) def __init__(self, room_type, status, price): self.room_type = room_type self.status = status self.price = price def store(self): db.session.add(self) return db.session.commit() def update(self, room_type, status, price): self.room_type = room_type self.status = status self.price = price return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit()
class BaseNoticeModel(db.Model): __abstract__ = True id: int = db.Column(db.Integer(), primary_key=True) post_date: datetime = db.Column(db.DateTime(), default=kst_now) title: str = db.Column(db.String()) content: str = db.Column(db.String())
class FruitVoting(db.Model): __tablename__ = "fruit_voting" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Integer) menber = db.Column(db.String) created_at = db.Column(db.Integer, default=datetime.utcnow) is_validated = db.Column(db.Boolean, default=True)
class FacilityReportModel(db.Model): __tablename__ = 'facility_report' id: int = db.Column(db.Integer(), primary_key=True) student_id: str = db.Column( db.String(), db.ForeignKey('student.username', ondelete='CASCADE')) room_number: int = db.Column(db.Integer()) content: str = db.Column(db.String())
class Comment(db.Model): __tablename__ = "comment" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer) activity_id = db.Column(db.Integer) content = db.Column(db.String(20), nullable=False) created_at = db.Column(db.DateTime, default=datetime.utcnow)
class ActivityVoting(db.Model): __tablename__ = "activity_voting" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(30), nullable=False) is_validated = db.Column(db.Boolean, default=True) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, default=datetime.utcnow)
class Destination(db.Model, Utf8Set): """ Cities """ __tablename__ = 'destination' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(64), nullable=False) remark = db.Column(db.String(255))
class StudentModel(BaseStudent): __tablename__ = 'student' username: str = db.Column(db.String(), primary_key=True) password: str = db.Column(db.String()) @classmethod async def query_by_username(cls, username: str): return await cls.query.where(cls.username == username).gino.first()
class PointHistoryModel(db.Model): __tablename__ = 'point_history' id: int = db.Column(db.Integer(), primary_key=True) student_id: str = db.Column( db.String(), db.ForeignKey('student.username', ondelete='CASCADE')) point_id: int = db.Column( db.Integer(), db.ForeignKey('point_item.id', ondelete='CASCADE')) point_date: datetime = db.Column(db.DateTime())
class item(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(120), unique=True) price = db.Column(db.String(120)) #imgsrc = db.Column(db.Text) def __init__(self, title, price): self.title = title self.price = price
class item_img(db.Model): id = db.Column(db.Integer, primary_key=True) itemid = db.Column(db.Integer, db.ForeignKey('item.id')) imgsrc = db.Column(db.Text) item = db.relationship('item', backref=db.backref('item_img', lazy='dynamic')) def __init__(self, imgsrc, item): #self.itemid = itemid self.imgsrc = imgsrc self.item = item
class Bookmark(db.Model): __tablename__ = 'Bookmark' bookmark_num = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.ForeignKey('User.id')) bookmark_name = db.Column(db.CHAR(50)) longitude = db.Column(db.Float, nullable=False) latitude = db.Column(db.Float, nullable=False) user = db.relationship('User')
class BaseStudent(db.Model): __abstract__ = True name: str = db.Column(db.String()) number: int = db.Column(db.Integer(), unique=True) email: str = db.Column(db.String(), unique=True) @classmethod async def query_by_number(cls, number: int): return await cls.query.where(cls.number == number).gino.first()
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) telephone = db.Column(db.String(11), nullable=False) username = db.Column(db.String(50), nullable=False) password = db.Column(db.String(100), nullable=False) image_path = db.Column( db.String(256), nullable=False, server_default='img/7dc3c78d-edf1-4827-b6d4-9043638f8024.jpg')
class Comment(db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.TEXT, nullable=False) question_id = db.Column(db.Integer, db.ForeignKey('question.id')) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) create_time = db.Column(db.DateTime, default=datetime.now) question = db.relationship('Question', backref=db.backref('comments')) author = db.relationship('User', backref=db.backref('comments'))
class Question(db.Model): __tablename__ = 'question' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(128), nullable=False) content = db.Column(db.TEXT, nullable=False) #now()会保存服务首次运行时间,now为内次运行时的时间 create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('questions'))
class Questions(db.Model): __tablename__ = 'question' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) #now()获取的是服务器第一次运行的时间 #now 是每次创立一个模型时候,都获取当前的时间,不要搞混了 create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('questions'))
class PointStatusModel(db.Model): __tablename__ = 'point_status' student_id: str = db.Column(db.String(), db.ForeignKey('student.username', ondelete='CASCADE'), primary_key=True) good_point: int = db.Column(db.Integer()) bad_point: int = db.Column(db.Integer()) penalty_level: int = db.Column(db.Integer()) penalty_status: bool = db.Column(db.Boolean())
class User(db.Model): id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(100)) last_name = db.Column(db.String(100)) email = db.Column(db.String(120), unique=True) # pets = db.relationship('Pet', backref='owner') def __str__(self): return "{}, {}".format(self.last_name, self.first_name) def __repr__(self): return "{}: {}".format(self.id, self.__str__())
class Command(db.Model): __tablename__ = 'command' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) question_id = db.Column(db.Integer, db.ForeignKey('question.id')) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) #通过在backref里添加order_by的函数,是数据库的倒序输出 question = db.relationship('Questions', backref=db.backref('commands', order_by=id.desc())) author = db.relationship('User', backref=db.backref('commands'))
class Comment(db.Model, Utf8Set): """ to who """ __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.String(255), nullable=False) createDate = db.Column(db.DateTime, default=datetime.datetime.now) # one to one authorId = db.Column(db.Integer, db.ForeignKey('author.id')) articleId = db.Column(db.Integer, db.ForeignKey('article.id'))