sqlatable 数据表 对象
slc slice 表中的一行。
form_data=request.args url 参数
datasource 数据表 对象
form_data.get("orderby") 获取 orderby 值
relationship 数据库关系
query_obj 查询 参数 字典
row.index 横坐标
get_data 组装数据
groupby 对列进行分组 运算。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
=========================
classAddress(Base):...
__tablename__='addresses'
...id=Column(Integer,primary_key=True)
...email_address=Column(String,nullable=False)
...user_id=Column(Integer,ForeignKey('users.id'))
......user=relationship("User",backref=backref('addresses',order_by=id))
......def__init__(self,email_address):
...self.email_address=email_address
......def__repr__(self):
...return"〈Address('%s')〉"%self.email_address
让我们注意一下新出现的东东,首先就是user_id的ForeignKey结构,学过数据库的同学都知道ForeignKey意味着外键,这是关系型数据库的核心理论之一,即该列user_id与其外键引用的列users.id存在引用约束(constrained)关系,在数据库层面上来讲,就是表users的user_id列被表users的id列约束,值得注意的是,外键关联的必定是另外一张表的主键。
其次新出现的就是relationship()函数,这个将会告知ORM通过Address.userAddress类自身必须链接到User类。relationship()使用两个表的外键约束来判定这种链接的性质,比如说判定Address.user将会是多对一(many-to-one)关系。
另外在relationship()内还有另外一个函数称为backref(),它将提供一种用于反向查询的细节,比如说在对象User上的Address对象集是通过User.addresses属性引用,那么多对一的关系(many-to-one)反向总会是一对多关系(one-to-many)。还有对于Address.user和User.addresses的关系来说总是双向的。