class Todo(db.Model): __tablename__ = "todo" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(20), unique=True, nullable=False) content = db.Column(db.Text) start = db.Column(db.String(20)) due = db.Column(db.String(20)) completed = db.Column(db.String(10), nullable=False) color = db.Column(db.String(20)) tags = db.Column(db.String(100)) def __init__(self, data): data_query.update(self, data)
class Post(db.Model): __tablename__ = 'post' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(120), nullable=False) content = db.Column(db.Text) status = db.Column(db.Integer, default=PostStatus.PENDING, index=True) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer) def to_dict(self): return dict(id=self.id, title=self.title, content=self.content, status=self.status, created_at=self.created_at, updated_at=self.updated_at)
class Post(db.Model): __tablename__ = 'posts' id = db.Column(db.Integer, primary_key=True) caption = db.Column(db.String(140), nullable=True) photo_filename = db.Column(db.String) photo_url = db.Column(db.String) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) comments = db.relationship('Comment', backref='post', lazy='dynamic') def to_dict(self): data = { 'id': self.id, 'photo_url': self.photo_url, 'author': self.author.username, } return data
class AdminUserActivity(db.Model): id = db.Column(db.Integer, primary_key=True) admin_user_id = db.Column(db.Integer, nullable=False, index=True) action = db.Column(db.String(255), nullable=False, index=True) raw_data = db.Column(db.Text, nullable=False) created_at = db.Column(AwareDateTime, nullable=False, default=current_time, index=True) def __init__(self, admin_user_id, action, raw_data): self.admin_user_id = admin_user_id self.action = action self.raw_data = raw_data @classmethod def record(admin_user_id, action, raw_data): db.session.add(AdminUserActivity(admin_user_id, action, raw_data)) db.session.commit()
class Article(db.Model): __tablename__ = 'article' article_id = db.Column(db.String(20), primary_key=True) article_title = db.Column(db.String(100), nullable=False) article_text = db.Column(db.Text) article_summary = db.Column(db.String(255)) article_read_cnt = db.Column(db.Integer, default=0) article_sc = db.Column(db.Integer, default=0) article_pl = db.Column(db.Integer, default=0) article_date = db.Column(db.DateTime, default=datetime.utcnow()) article_url = db.Column(db.Text) article_type = db.Column(db.String(10)) article_author = db.Column(db.String(20)) user_id = db.Column(db.String(20))
class Comment(db.Model): '''评论''' __tablename__ = 'tbl_comment' id = db.Column(db.Integer, primary_key=True) author = db.Column(db.String(30)) body = db.Column(db.Text) from_admin = db.Column(db.Boolean, default=False) reviewed = db.Column(db.Boolean, default=False) timestamp = db.Column(db.DateTime, default=datetime.utcnow, index=True) post_id = db.Column(db.Integer, db.ForeignKey('tbl_post.id')) post = db.relationship('Post', back_populates='comments') replied_id = db.Column(db.Integer, db.ForeignKey('tbl_comment.id')) replies = db.relationship('Comment', back_populates='replied', cascade='all, delete-orphan') replied = db.relationship('Comment', back_populates='replies', remote_side=[id])
class Game(db.Model): """Basic game model """ __tablename__ = "games" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60), nullable=False) num_moves = db.Column(db.Integer, nullable=False, default=0) created = db.Column(db.DateTime, nullable=False, default=datetime.now()) updated = db.Column(db.DateTime, nullable=True, default=None) settings = db.relationship('Settings', uselist=False, backref=db.backref('game')) def __init__(self, **kwargs): super(Game, self).__init__(**kwargs) def __repr__(self): return "<Game %s>" % self.id