1 # -*- coding: utf-8 -*-
2
3 from graphics import db # 一,模块和包:导入db对象,在graphics/_init_.py中定义得db = SQLAlchemy(),参考:https://www.cnblogs.com/chaojiyingxiong/p/14784269.html
4 from sqlalchemy.dialects.mysql import BIGINT
5
6
7 class ImageCheck(db.Model): # 二,类的继承:db是SQLAlchemy的实例,Model是db的属性,db.Model是一个类,这里继承了db.Model的一些方法和属性
# 三,在ORM中,模型一般是一个python类,类中的属性对应数据库中的列
8 __tablename__ = 'image_checks' # 四,__tablename__类变量是在数据库中定义的表名,如果没有类变量,Flask_SQLalchemy会默认一个表名
9 id = db.Column(BIGINT(unsigned=True), primary_key=True) # 五,其余的类变量是该模型的属性,被定义为db.Column的实例。db.Column的第一个参数是数据库列和模型属性的类型
10 para_info=db.Column(db.Text, nullable=True) # 六,db.Text这列的取值类型,常见类型参考:https://www.cnblogs.com/chaojiyingxiong/p/14784782.html
11 create_time = db.Column(db.String(64), nullable=True) # 七,类属性和实例属性的区别,参考:https://www.cnblogs.com/chaojiyingxiong/p/14785032.html
12
13
14 def __repr__(self): #八,__repr__(self)方法,Python __repr__()方法:显示属性,具体参考:https://www.cnblogs.com/chaojiyingxiong/p/14784955.html
15 return '<Image_check {} {} {}>'.format(self.id, self.para_info, self.create_time)
16
17 def as_dict(self): #九,as_dict(),字典生成式,将对象转变为json,一般数据库查询用到,参考:https://www.cnblogs.com/chaojiyingxiong/p/14786316.html
18 return {c.name: getattr(self, c.name) for c in self.__table__.columns}