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 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 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 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 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 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 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 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)
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, default=datetime.utcnow, onupdate=datetime.utcnow) user_id = db.Column(db.Integer, nullable=False) url_en = db.Column(db.String(200), unique=True, nullable=False) image_url = db.Column(db.String(100), nullable=True) text = db.Column(db.Text, nullable=False) template = db.Column(db.Text, nullable=False) like_count = db.Column(db.Integer, nullable=True) views = db.Column(db.Integer, nullable=True) __searchable__ = ["text", "title", "slug", "url_en"] __msearch_analyzer__ = ChineseAnalyzer() tags = db.relationship('Tag', secondary=article_tag, backref=db.backref('articles', lazy="dynamic"), lazy="dynamic") category = db.relationship('Category', secondary=article_category, backref=db.backref('articles', lazy="dynamic"), lazy="dynamic") def save(self): try: db.session.add(self) db.session.commit() current_app.logger.info('文章保存成功') return {'status': True} except Exception as error: current_app.logger.error('文章保存错误{}:'.format(error)) return {'status': False, "message": error} def updata(self): try: db.session.commit() current_app.logger.info('文章更新成功') return {'status': True} except Exception as error: current_app.logger.error('文章保存错误{}:'.format(error)) return {'status': False, "message": error} def delete(self): try: db.session.delete(self) db.session.commit() current_app.logger.info('文章删除成功') return {'status': True} except Exception as error: current_app.logger.error('文章删除错误{}:'.format(error)) return {'status': False, "message": error} def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict def paginate(self): print(self)