class Post(db.Model): __tablename__ = 'posts' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200)) short_body = db.Column(db.Text) body = db.Column(db.Text) time = db.Column(db.DateTime) u_id = db.Column(db.Integer, db.ForeignKey('users.id')) user = db.relationship('User', backref=db.backref('posts')) blog_image = db.Column(db.String(300)) t_id = db.Column(db.Integer, db.ForeignKey('tags.id')) tag = db.relationship('Tag', backref=db.backref('posts')) def __init__(self, title=None, short_body=None, body=None, time=None, user=None, blog_image=None, **kwargs): super(Post, self).__init__(**kwargs) self.title = title self.short_body = short_body self.body = body self.time = time self.user = user self.blog_image = blog_image def __repr__(self): return '<Post %r>' % (self.title)
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 Schedule(db.Model): __tablename__ = 'schedules' id = db.Column(db.Integer, primary_key=True) departured_at = db.Column(db.DateTime) arrived_at = db.Column(db.DateTime) driver_id = db.Column(db.Integer, db.ForeignKey('users.id')) bus_id = db.Column(db.Integer, db.ForeignKey('busses.id')) conductor_id = db.Column(db.Integer) origin = db.Column(db.String(20)) destination = db.Column(db.String(255)) status = db.Column(db.String(20)) amount = db.Column(db.Float) duration = db.Column(db.String(20)) reservations = db.relationship('Reservation', backref="schedule", lazy=True) def __init__(self, departured_at, arrived_at, driver_id, bus_id, conductor_id, origin, destination, status, amount, duration): self.departured_at = departured_at self.arrived_at = arrived_at self.driver_id = driver_id self.bus_id = bus_id self.conductor_id = conductor_id self.origin = origin self.destination = destination self.status = status self.amount = amount self.duration = duration def store(self): db.session.add(self) return db.session.commit() def update(self, departured_at, arrived_at, driver_id, bus_id, conductor_id, origin, destination, status, amount, duration): self.departured_at = departured_at self.arrived_at = arrived_at self.driver_id = driver_id self.bus_id = bus_id self.conductor_id = conductor_id self.origin = origin self.destination = destination self.status = status self.amount = amount self.duration = duration return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit() def update1(self, status): self.status = status return db.session.commit()
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 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'))
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 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 Article(db.Model, Utf8Set): """ For article detail article info: id \ title \ text\ create_date \ update_date access info: privacy\status """ __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(64), nullable=False) cover = db.Column(db.String(255)) content = db.Column(db.Text, nullable=False) summary = db.Column(db.String(255), default=u'作者还未添加文字信息') # default value is draft and public status = db.Column(db.Boolean, default=False) privacy = db.Column(db.Boolean, default=False) createDate = db.Column(db.DateTime, default=datetime.datetime.now) updateDate = db.Column(db.DateTime, default=datetime.datetime.now) # one to one authorId = db.Column(db.Integer, db.ForeignKey('author.id')) # travel \ dairy, or blog articles are belong to dairy # 'My life' 'Beautiful Chengdu' 'Small City Tongliang' 'Hometown Zhuji' tagId = db.Column(db.Integer, db.ForeignKey('tag.id')) # one to many comments = db.relationship('Comment', backref='article', lazy='dynamic') def __init__(self, title, content, summary, privacy, tagId, authorId, cover=''): self.title = title self.content = content self.summary = summary self.privacy = privacy self.cover = cover self.tagId = tagId self.authorId = authorId
class Reservation(db.Model): __tablename__ = 'reservations' id = db.Column(db.Integer, primary_key=True) schedule_id = db.Column(db.Integer, db.ForeignKey('schedules.id')) passenger_id = db.Column(db.Integer, db.ForeignKey('users.id')) route_id = db.Column(db.Integer, db.ForeignKey('bus.id')) datetime = db.Column(db.DateTime) quantity = db.Column(db.Integer) amount = db.Column(db.Float) discount = db.Column(db.Integer) status = db.Column(db.String(20)) def __init__(self, schedule_id, passenger_id, route_id, datetime, quantity, amount, discount, status): self.schedule_id = schedule_id self.passenger_id = passenger_id self.route_id = route_id self.datetime = datetime self.quantity = quantity self.amount = amount self.discount = discount self.amount = amount self.status = status def store(self): db.session.add(self) return db.session.commit() def update(self, schedule_id, passenger_id, route_id, datetime, quantity, amount, discount, status): self.schedule_id = schedule_id self.passenger_id = passenger_id self.route_id = route_id self.datetime = datetime self.quantity = quantity self.amount = amount self.discount = discount self.amount = amount self.status = status return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit()
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 Diary(db.Model): __tablename__ = 'diarys' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200)) short_body = db.Column(db.String(300)) body = db.Column(db.Text) time = db.Column(db.DateTime) diary_image = db.Column(db.String(300)) u_id = db.Column(db.Integer, db.ForeignKey('users.id')) user = db.relationship('User', backref=db.backref('diarys'))
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 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 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 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 Repair(db.Model): __tablename__ = 'repairs' id = db.Column(db.Integer, primary_key=True) mechanic_id = db.Column(db.Integer, db.ForeignKey('users.id')) bus_id = db.Column(db.Integer, db.ForeignKey('busses.id')) longitude = db.Column(db.String(59)) latitude = db.Column(db.String(50)) description = db.Column(db.String(50)) type = db.Column(db.String(50)) status = db.Column(db.String(50)) def __init__(self, mechanic_id, bus_id, longitude, latitude, description, type, status): self.mechanic_id = mechanic_id self.bus_id = bus_id self.longitude = longitude self.latitude = latitude self.description = description self.type = type self.status = status def store(self): db.session.add(self) return db.session.commit() def update(self, mechanic_id, bus_id, longitude, latitude, description, type, status): self.mechanic_id = mechanic_id self.bus_id = bus_id self.longitude = longitude self.latitude = latitude self.description = description self.type = type self.status = status return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit()
class BaseApplyModel(db.Model): __abstract__ = True id: int = db.Column(db.Integer(), primary_key=True) student_id: str = db.Column(db.String, db.ForeignKey('student.username', ondelete='CASCADE')) apply_date = db.Column(db.DateTime(), default=kst_now) @classmethod async def query_by_id(cls, id: Any): return await cls.query.where(cls.id == id).gino.first() @classmethod async def query_by_student(cls, student_id: str): return await cls.query.where(cls.student_id == student_id).gino.first()
class Picture(db.Model, Utf8Set): """ All pictures are public, Also portraits are include """ __tablename__ = 'picture' id = db.Column(db.Integer, primary_key=True, autoincrement=True) remark = db.Column(db.String(255), default=u'the owner was lazy and left nothing') # In the near future , we may save the pics by two resolutions # one is for list, another is for detail fullLink = db.Column(db.String(255)) tinyLink = db.Column(db.String(255)) uploadDate = db.Column(db.DateTime, default=datetime.datetime.now) albumId = db.Column(db.Integer, db.ForeignKey('album.id')) authorId = db.Column(db.Integer, db.ForeignKey('author.id')) def __init__(self, fullLink, tinyLink, authorId): self.fullLink = fullLink self.tinyLink = tinyLink self.authorId = authorId
class Album(db.Model, Utf8Set): """ All albums are public; Currently, Album refer to tag Dairy Emotion Capture Travel ChengDu Tongliang Zhuji """ __tablename__ = 'album' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(64), nullable=False) remark = db.Column(db.String(255), nullable=False) cover = db.Column(db.String(255)) privacy = db.Column(db.Boolean, default=False) iscarrousel = db.Column(db.Boolean, default=False) createDate = db.Column(db.DateTime, default=datetime.datetime.now) # one to one authorId = db.Column(db.Integer, db.ForeignKey('author.id')) tagId = db.Column(db.Integer, db.ForeignKey('tag.id')) # one to many pictures = db.relationship('Picture', backref='album', lazy='dynamic') def __init__(self, title, remark, privacy, authorId, tagId): self.title = title self.remark = remark self.privacy = privacy self.authorId = authorId self.tagId = tagId
class Reservation(db.Model): __tablename__ = 'reservations' id = db.Column(db.Integer, primary_key=True) users_id = db.Column(db.Integer, db.ForeignKey('users.id')) rooms_id = db.Column(db.Integer, db.ForeignKey('rooms.id')) date_in = db.Column(db.DateTime) date_out = db.Column(db.DateTime) child_count = db.Column(db.Integer) adult_count = db.Column(db.Integer) def __init__(self, users_id, rooms_id, date_in, date_out, child_count, adult_count): self.users_id = users_id self.rooms_id = rooms_id self.date_in = date_in self.date_out = date_out self.child_count = child_count self.adult_count = adult_count def store(self): db.session.add(self) return db.session.commit() def update(self, users_id, rooms_id, date_in, date_out, child_count, adult_count): self.users_id = users_id self.rooms_id = rooms_id self.date_in = date_in self.date_out = date_out self.child_count = child_count self.adult_count = adult_count return db.session.commit() def delete(self): db.session.delete(self) return db.session.commit()
class User(db.Model, UserMixin): __tablename__ = 'User' __table_args__ = {'extend_existing': True} id = db.Column(db.Integer, primary_key=True, unique=True) email = db.Column(db.Text, nullable=False) name = db.Column(db.Text, nullable=False) password = db.Column(db.Text, nullable=False) age = db.Column(db.Integer) active = db.Column(db.Boolean) role = db.Column(db.ForeignKey('Role.id')) Role = db.relationship('Role') def set_password(self, password): self.password = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password, password)
class Comment(db.Model): __tablename__ = 'comments' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(200)) email = db.Column(db.String(200)) comment = db.Column(db.Text) p_id = db.Column(db.Integer, db.ForeignKey('posts.id')) post = db.relationship('Post', backref=db.backref('comments')) def __init__(self, name=None, email=None, comment=None, post=None, **kwargs): super(Comment, self).__init__(**kwargs) self.name = name self.email = email self.comment = comment self.post = post def __repr__(self): return '<Comments %r>' % (self.name)
from extension import db from datetime import datetime from jieba.analyse import ChineseAnalyzer from flask import current_app article_tag = db.Table( 'article_tag', db.Column('article_id', db.Integer, db.ForeignKey('article.id'), primary_key=True), db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True)) article_category = db.Table( 'article_category', db.Column('article_id', db.Integer, db.ForeignKey('article.id'), primary_key=True), db.Column('category_id', db.Integer, db.ForeignKey('category.id'), primary_key=True)) class Article(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(200), unique=True, nullable=False) slug = db.Column(db.String(400), unique=True, nullable=False) created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) modified = db.Column(db.DateTime,
class Article(db.Model): __tablename__ = 'article' 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) author_id = db.Column(db.Integer, db.ForeignKey('user.id'))