class Message(db.Model): id = db.Column(db.Integer, primary_key=True) sender_id = db.Column(db.Integer, db.ForeignKey(User.id)) recipient_id = db.Column(db.Integer, db.ForeignKey(User.id)) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow()) def __repr__(self): return '<Message {}>'.format(self.body)
class Notification(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(128), index=True) user_id = db.Column(db.Integer, db.ForeignKey(User.id)) timestamp = db.Column(db.Float, index=True, default=time) payload_json = db.Column(db.Text) def get_data(self): return json.loads(str(self.payload_json))
class Post(SearchableMixin, db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey(User.id)) language = db.Column(db.String(5)) __searchable__ = ['body'] def __repr__(self): return '<Post {}>'.format(self.body)
class Xt(db.Model): __tablename__ = 'Xt' __table_args__ = {'mysql_collate': 'utf8_general_ci'} number = db.Column(db.Integer, autoincrement=True, primary_key=True) # 需要使用__tablename__参数指定表名 u_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=True) xt = db.Column(db.Integer) x_date = db.Column(db.DateTime) def __repr__(self): return 'id:%s, xt:%s, x_date:%s' % (self.u_id, self.xt, self.x_date)
class Task(db.Model): id = db.Column(db.String(36), primary_key=True) name = db.Column(db.String(128), index=True) description = db.Column(db.String(128)) user_id = db.Column(db.Integer, db.ForeignKey(User.id)) complete = db.Column(db.Boolean, default=False) def get_rq_job(self): try: job = rq.job.Job.fetch(self.id, connection=current_app.redis) except (redis.exceptions.RedisError, rq.exceptions.NoSuchJobError): return None return job def get_progress(self): job = self.get_rq_job() return job.meta.get('progress', 0) if job is not None else 100
'total_items': resources.total }, '_links': { 'self': url_for(endpoint, page=page, per_page=per_page, **kwargs), 'next': url_for(endpoint, page=page + 1, per_page=per_page, **kwargs) \ if resources.has_next else None, 'prev': url_for(endpoint, page=page - 1, per_page=per_page, **kwargs) \ if resources.has_prev else None } } return data followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))) class User(PaginatedAPIMixin, UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) # email = db.Column(db.String(120), index=True, unique=True) email = db.Column(db.String(120), index=True) password_hash = db.Column(db.String(128)) about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) token = db.Column(db.String(32), unique=True, index=True) token_expiration = db.Column(db.DateTime) posts = db.relationship('Post', backref='author', lazy='dynamic') followed = db.relationship('User',