class Category(db.Model): id = db.Column(db.Integer, primary_key=True) category_name = db.Column(db.String(20), unique=True, nullable=False) api = db.relationship('Api', backref='category', lazy='dynamic') def __repr__(self): return '<Category %r>' % self.category_name
class UserGroup(db.Model): """分组表""" __tablename__ = 'group' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=True) owner = db.Column(db.Integer, db.ForeignKey('user.id')) g_friends = db.relationship('Friend', backref='g_friend')
class CoreUser(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username
class Likes(db.Model): __tablename__ = 'likes1' id = db.Column(db.Integer, primary_key=True) article_id = db.Column(db.Integer, db.ForeignKey('article1.id')) user_id = db.Column(db.String(32), db.ForeignKey('role1.uuid')) time = db.Column(db.DATETIME, default=datetime.now) def to_like(self): data = { 'id': self.id, 'article_id': self.article_id, 'article_title': self.article.tittle, 'user_id': self.user_id, 'time': self.time, 'img': self.send_img() } return data def send_img(self): if self.article.img: img = self.article.img else: img = 'img/blog/blog-2.jpg' return img
class Event(db.Model): __tablename__ = "Event" id = db.Column(db.Integer, primary_key=True) author = db.Column(db.String(64)) article = db.Column(db.String(64)) event = db.Column(db.String(16)) time = db.Column(db.Integer)
class ArticleTag(db.Model): __tablename__ = 'article_tag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20), unique=True, nullable=False) #指明关系,通过标签也能找到文章 articles = db.relationship('Article', backref='article_tag')
class User(db.Model): id = db.Column(db.Integer, primary_key=True) login = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) is_active = db.Column(db.Boolean) def set_password(self, plain_pass): self.password = hashlib.sha1(plain_pass.encode('utf-8')).hexdigest() return True def check_password(self, plain_pass): if self.password == hashlib.sha1( plain_pass.encode('utf-8')).hexdigest(): return True return False def is_authenticated(self): return True def is_active(self): return self.is_active def is_anonymous(self): return False def get_id(self): return self.id def __repr__(self): return '<User: %s>' % self.login
class GroupInfo(BaseModel, db.Model): __tablename__ = "s_group_info" id = db.Column(db.Integer, primary_key=True) group_name = db.Column(db.String(30)) avatar = db.Column(db.String(100), nullable=True) group_user = db.relationship("GroupUserRelation", backref=db.backref("s_group_info"))
class ChatInfo(BaseModel, db.Model): __tablename__ = "s_chat_info" id = db.Column(db.Integer, primary_key=True) from_user_id = db.Column(db.Integer, db.ForeignKey("s_user_info.id")) chat_info = db.Column(db.Text) chat_user = db.relationship("ChatUserRelation", backref=db.backref("s_chat_info"))
class BlogPost(db.Model): __tablename__ = 'posts' id = Column(Integer, primary_key=True) headline = Column(String(255), nullable=False) body = Column(Text) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) user_id = Column(Integer, ForeignKey('users.id')) category_id = db.Column(db.Integer, db.ForeignKey('category.id')) category = db.relationship('Category', backref=db.backref('posts', lazy='dynamic')) # many to many BlogPost<->Keyword tags = db.relationship('Tag', secondary=reltags, lazy='subquery', backref=db.backref('pages', lazy='dynamic')) comments = relationship('Comments', backref='posts', lazy='dynamic') # def __init__(self,headline,body,author): # self.author = author # self.headline = headline # self.body = body def __repr__(self): return "BlogPost(%r, %r, %r)" % (self.headline, self.body, self.author)
class UserGroup(BaseModel, db.Model): __tablename__ = "s_user_group" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey("s_user_info.id")) group_name = db.Column(db.String(30)) group_friend = db.relationship("GroupFriend", backref=db.backref("s_user_group"))
class PayLanguage(db.Model): __tablename__ = "dep_pago_language" iD = db.Column(db.Integer, primary_key=True) idLanguage = db.Column(db.Integer) idPago = db.Column(db.Integer) description = db.Column(db.Integer)
class OperationLog(BaseModel, db.Model): """操作日志""" __tablename__ = "operation_log" id = db.Column(db.Integer, primary_key=True) # 操作编号 module = db.Column(db.String(8)) # 操作模块 operation = db.Column(db.String(32)) # 执行的操作 operation_res = db.Column(db.String(32)) # 操作结果 # create_time 已继承 update_time = None # 取消update字段 user_id = db.Column(db.Integer, db.ForeignKey('user_profile.id')) # 外键关联user users = db.relationship('User', backref=backref('operation'), foreign_keys=[user_id]) # 对应用户的操作日志 def to_dict(self): """将对象转换为字典数据""" # 根据前端的需求, 返回对应字段的信息 operation_dict = { "id": self.id, "user_id": self.user_id, "module": self.module, "operation": self.operation, "res": self.operation_res, "time": self.create_time.strftime("%Y-%m-%d %H:%M:%S") } return operation_dict def __repr__(self): str_ = "OperationLog(id={id},user_id={user_id})".format( id=self.id, user_id=self.user_id) return str_
class BaseModel(object): """模型基类,为每个模型补充创建时间与更新时间""" create_time = db.Column(db.DateTime, default=datetime.now) # 记录的创建时间 update_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now) # 记录的更新时间(登录时间)
class BookSection(db.Model): __tablename__ = 'book_section' id = db.Column(db.Integer, primary_key=True, autoincrement=True) section_url = db.Column(db.String(200)) section_title = db.Column(db.String(80)) books_id = db.Column(db.Integer, db.ForeignKey('books.id'))
class Nginxlog(db.Model): __tablename__ = 'nginxlog' id = db.Column(db.Integer, primary_key=True) ip = db.Column(db.String(255)) url = db.Column(db.String(3000)) status = db.Column(db.String(255)) counts = db.Column(db.String(255))
class BookContent(db.Model): __tablename__ = 'book_content' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.Text) book_section_id = db.Column(db.Integer, db.ForeignKey('book_section.id'))
class Comment(Base,db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True) news_id = db.Column(db.Integer,db.ForeignKey('news.id'),index=True) user_id = db.Column(db.Integer,db.ForeignKey('user.id'),index=True) content = db.Column(db.String(255)) def to_dict(self): com_list = { 'id' : self.id, 'news_id' : self.news_id, 'user_id' : self.user_id, 'content' : self.content, 'create_time' : self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'update_time' : self.update_time.strftime('%Y-%m-%d %H:%M:%S'), 'user' : User.query.filter(User.id == self.user_id).first().to_dict() } return com_list # # if __name__ == '__main__': # db.drop_all() # db.create_all() # app.run()
class AlbumLove(db.Model): __tablename__ = 'album_love' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) album_id = db.Column(db.Integer, db.ForeignKey('album.id')) addtime = db.Column(db.DATETIME, index=True, default=datetime.now)
class Article(db.Model): __tablename__ = 'articles' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(64), index=True) link_id = db.Column(db.Integer, index=True) owner = db.Column(db.Integer, index=True) content = db.Column(db.String())
class User(db.Model, UserMixin): """ User Session management Class """ __tablename__ = "user" __table_args__ = {"schema": "ep_data"} id = db.Column('id', Integer, primary_key=True) email = db.Column(String) def __init__(self, email, accesstoken=""): self.email = email self.accesstoken = accesstoken def is_active(self): u = User.query.get(self.id) if u: return True else: return False def is_authenticated(self): return True def myemail(self): return self.email def hmac_md5(self, s): return hmac.new(('%s' % self.id).encode('utf-8'), ('%s' % s).encode('utf-8'), hashlib.md5).hexdigest()
class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(32), index=True) password_hash = db.Column(db.String(128)) character_id = db.Column(db.Integer) def hash_password(self, password): self.password_hash = generate_password_hash(password) def verify_password(self, password): return check_password_hash(self.password_hash, password) def generate_auth_token(self, expires_in=3600): return jwt.encode({ 'id': self.id, 'exp': time.time() + expires_in }, app.config['SECRET_KEY'], algorithm='HS256') @staticmethod def verify_auth_token(token): try: data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=['HS256']) except: return return User.query.get(data['id'])
class Post(db.Model): __tablename__ = "Post" id = db.Column(db.Integer, primary_key=True) author = db.Column(db.String(64)) article = db.Column(db.String(64)) message = db.Column(db.String(2048)) time = db.Column(db.Integer)
class BaseModel(object): sort = db.Column(db.Integer, default=None, nullable=True, comment="排序") is_deleted = db.Column(db.Boolean, default=False, comment="逻辑删除") is_show = db.Column(db.Boolean, default=True, comment="是否显示") created_time = db.Column(db.DateTime, default=datetime.now, comment="添加时间") updated_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now, comment="更新时间") # 模型.__to_dict__(["id","mame","age"]) def __to_dict__(self,fields=None): """把模型对象转换成字典""" self.created_time = self.created_time.strftime("%Y-%m-%d %H:%M:%S") self.updated_time = self.updated_time.strftime("%Y-%m-%d %H:%M:%S") data = self.__dict__ data_dict = copy.deepcopy(data) # 从字典中移除掉表示外键关系的属性 if "_sa_instance_state" in data_dict: data_dict.pop("_sa_instance_state") # 如果不指定fields,则默认返回模型的所有数据 if fields is None: return data_dict # fields不是None, 则根据fields来决定要返回哪些字段数据 result = {} for key,value in data_dict.items(): if key in fields: result[key] = value return result
class User(db.Model): id = db.Column(db.String(255), primary_key=True) password = db.Column(db.String(255)) date = db.Column(db.DateTime(), default=db.func.now()) # 회원가입 당 시, 정보 입력(청소년,신입생,복학생,취준생,직장인) user_category=db.Column(db.String(255),default="신입생") input_jobs=db.Column(db.String(255),default="0")
class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(255)) #key = content = db.Column(db.Text()) category = db.Column(db.String(255)) date_created = db.Column(db.DateTime(), default=db.func.now())
class Tag(db.Model): """标签表""" __tablename__ = 'tag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False, unique=True) status = db.Column(db.Boolean, default=True)
class Users(db.Model, UserMixin): __tablename__ = 'Users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True) email = db.Column(db.String(64), unique=True) password = db.Column(db.LargeBinary) def __init__(self, **kwargs): for property, value in kwargs.items(): # depending on whether value is an iterable or not, we must # unpack it's value (when **kwargs is request.form, some values # will be a 1-element list) if hasattr(value, '__iter__') and not isinstance(value, str): # the ,= unpack of a singleton fails PEP8 (travis flake8 test) value = value[0] if property == 'password': value = hash_pass(value) # we need bytes here (not plain str) setattr(self, property, value) def __repr__(self): return str(self.username)
class Job(BaseModel): __tablename__ = 'jenkins_job' name = db.Column(db.String(8), index=True) pipeline_script = db.Column(db.Text) access_url = db.Column(db.String(128)) synced = db.Column(db.Boolean, server_default=text('False')) build_parms = db.Column(db.JSON, nullable=False, default={})
class Process(db.Model): id_P = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text()) #key = A_id = db.Column(db.Integer, db.ForeignKey('article.id')) article = db.relationship('Article', backref=db.backref('comments', cascade='all, delete-orphan', lazy='dynamic'))