摘要:地址序列化为灵感来源于多个实例单个实例排除字段仅包括字段关系查询深度默认为增加一些自定义的函数可传递参数的函数像一样使用与相比为什么很多人都认为更好用大概就是因为更方便基本查询已实现示例关系查询其它去掉一些的重复工作以为例通过继承中的就
GitHub地址: https://github.com/honmaple/maple-json
sqlalchemy object序列化为json灵感来源于 Django REST framework
多个实例posts = Post.query.all() serializer = Seralizer(posts,many=True) data = serializer.data单个实例
post = Post.query.first() serializer = Seralizer(post,many=False) data = serializer.data排除字段
serializer = Seralizer(post,exclude=["title"])仅包括字段
serializer = Seralizer(post,include=["title"])关系查询深度
serializer = Seralizer(post,depth=3)
depth
默认为2增加一些自定义的函数
serializer = Serializer(post,extra=["get_post_count"])
Post
class Post(Model): ...... def get_post_count(self): return 11可传递参数的函数
class PostSerializer(Serializer): count = Field(source = "get_post_count",args={"name":"hello"},default=20) class Meta: include = [] depth = 2 include = [] exclude = [] extra = ["count"]像django orm一样使用sqlalchemy
djang orm与sqlalchemy相比,为什么很多人都认为django orm更好用,大概就是因为django orm更方便
基本查询(已实现)gt
lt
lte
gte
contains
in
exact
iexact
startswith
istartswith
iendswith
endswith
isnull
range
year
month
day
示例:
Post.query.filter_by(title__contains = "sql").all() Post.query.exclude_by(title__contains = "sql").all()关系查询
Post.query.filter_by(tags__name__contains = "sql").all()其它
Post.query.filter_by(tags__name__contains = "sql").or(Post.id == 1,Post.id == 2).all() Post.query.filter_by(tags__name__contains = "sql").and(Post.id == 1,Post.id == 2).all() Post.query.filter_by(tags__name__contains = "sql").exists() Post.query.load_only("title")去掉一些sqlalchemy的重复工作
以flask-sqlalchemy为例,通过继承 models.py 中的Mixin,就可以去除部分重复工作
ModelMixin自增ID – id
post = Post(·····) post.save() # 保存 post.delete() # 保存
批量操作
bulk_insert
bulk_update
bulk_save
ModelTimeMixin增加两字段
created_at
数据创建时间
updated_at
数据更新时间ModelUserMixin
关联用户表,与User表现为多对一关系(即一个用户有多个post)
class Post(ModelUserMixin, Model): user_related_name = "posts" titile = ...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38522.html
摘要:查询记录在调试或测试模式自动启用。可以用于显式禁用原生支持。当使用不合适的指定无编码的数据库默认值时,这对于一些数据库适配器是必须的比如上某些版本的。这对是必要的,它默认移除闲置多于小时的连接。注意如果使用了,自动设定这个值为小时。 flask-sqlalchemy是flask的一个ORM扩展框架,这个扩展在sqlalchemy的进行的扩展,更方便的结合Flask.什么是ORM?其是O...
摘要:首先,使用连接数据库并定义表结构初始化。创建新对象添加到批量添加子非鱼虞姬花木兰提交即保存到数据库结果查的函数会返回一个对象。一对多在的一对多关系中,使用来表示表的外键,表示表与表之间关联的属性。 Python支持的数据库有很多,MySQL作为主流数据库之一,我们不妨了解下它们之间的小故事Python操作MySQL的库有三个,python-MySQL(MySQLdb),PyMySQL跟...
摘要:首先,使用连接数据库并定义表结构初始化。创建新对象添加到批量添加子非鱼虞姬花木兰提交即保存到数据库结果查的函数会返回一个对象。一对多在的一对多关系中,使用来表示表的外键,表示表与表之间关联的属性。 Python支持的数据库有很多,MySQL作为主流数据库之一,我们不妨了解下它们之间的小故事Python操作MySQL的库有三个,python-MySQL(MySQLdb),PyMySQL跟...
阅读 5153·2021-09-22 15:50
阅读 1833·2021-09-02 15:15
阅读 1135·2019-08-29 12:49
阅读 2508·2019-08-26 13:31
阅读 3424·2019-08-26 12:09
阅读 1180·2019-08-23 18:17
阅读 2673·2019-08-23 17:56
阅读 2903·2019-08-23 16:02