摘要:地址序列化為靈感來源于多個實例單個實例排除字段僅包括字段關系查詢深度默認為增加一些自定義的函數可傳遞參數的函數像一樣使用與相比為什么很多人都認為更好用大概就是因為更方便基本查詢已實現示例關系查詢其它去掉一些的重復工作以為例通過繼承中的就
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 = ...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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跟...
閱讀 5257·2021-09-22 15:50
閱讀 1863·2021-09-02 15:15
閱讀 1164·2019-08-29 12:49
閱讀 2543·2019-08-26 13:31
閱讀 3458·2019-08-26 12:09
閱讀 1210·2019-08-23 18:17
閱讀 2736·2019-08-23 17:56
閱讀 2929·2019-08-23 16:02