Skip to content

Commit 2cc0fed

Browse files
authored
Add the flush usage (#32)
1 parent a875e3d commit 2cc0fed

File tree

11 files changed

+57
-15
lines changed

11 files changed

+57
-15
lines changed

docs/advanced/filter.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ items = await item_crud.select_models(
116116
`or` 过滤器的高级用法,每个键都应是库已支持的过滤器,仅允许字典
117117

118118
```python title="__mor"
119-
# 获取年龄等于 30 岁和 40 岁的员工
119+
# 获取年龄等于 30 岁或 40 岁的员工
120120
items = await item_crud.select_models(
121121
session=db,
122122
age__mor={'eq': [30, 40]}, # (1)
@@ -133,7 +133,7 @@ items = await item_crud.select_models(
133133
`or` 过滤器的更高级用法,每个值都应是一个已受支持的条件过滤器,它应该是一个数组
134134

135135
```python title="__gor__"
136-
# 获取年龄在 30 - 40 岁之间且薪资大于 20k 的员工
136+
# 获取年龄在 30 - 40 岁之间或薪资大于 20k 的员工
137137
items = await item_crud.select_models(
138138
session=db,
139139
__gor__=[

docs/advanced/flush.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## `flush()`
2+
3+
- `flush` 是将更改从 Python 移动到数据库的事务缓冲区
4+
- 它会生成必要的 SQL 语句并发送到数据库执行,但不会提交(commit)事务
5+
-`flush` 之后,数据会被写入数据库,但事务依然是活跃的(未提交),除非发生错误,在这种情况下,整个事务将回滚,`flush`
6+
的更改也会被撤销
7+
8+
!!! tip "提示"
9+
10+
如果你在事务提交前无需对新实例进行某些操作,`flush` 是没必要的,在 `commit` 时,SQLAlchemy 会隐式地调用一次 `flush`,
11+
确保所有挂起的更改都被同步到数据库,然后提交事务

docs/usage/create_model.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ async def create_model(
33
self,
44
session: AsyncSession,
55
obj: CreateSchema,
6+
flush: bool = False,
67
commit: bool = False,
78
**kwargs,
89
) -> Model:
910
````
1011

11-
此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
12+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
13+
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
1214

1315
!!! note "关键字参数"
1416

docs/usage/create_models.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ async def create_models(
33
self,
44
session: AsyncSession,
55
objs: Iterable[CreateSchema],
6+
flush: bool = False,
67
commit: bool = False,
78
**kwargs,
89
) -> list[Model]:
910
```
1011

12+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
1113
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
12-
1314
- 此方法还提供与 `create_model()` 相同用法的关键字参数,需要额外注意的是,`create_models()` 会将关键字参数写入每个实例中
1415

1516
## 示例

docs/usage/delete_model.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ async def delete_model(
33
self,
44
session: AsyncSession,
55
pk: int,
6+
flush: bool = False,
67
commit: bool = False,
78
) -> int:
89
```
910

10-
- 此方法使用主键 pk 参数,详见:[主键](../advanced/primary_key.md)
11-
11+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
12+
- 此方法使用主键 `pk` 参数,详见:[主键](../advanced/primary_key.md)
1213
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
1314

1415
## 示例

docs/usage/delete_model_by_column.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ async def delete_model_by_column(
55
allow_multiple: bool = False,
66
logical_deletion: bool = False,
77
deleted_flag_column: str = 'del_flag',
8+
flush: bool = False,
89
commit: bool = False,
910
**kwargs,
1011
) -> int:
1112
```
1213

14+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
1315
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
14-
1516
- 此方法可结合 [高级过滤器](../advanced/filter.md) 使用
1617

1718
## 删除多条

docs/usage/select_model.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
async def select_model(self, session: AsyncSession, pk: int) -> Model | None:
33
```
44

5-
此方法使用主键 pk 参数,详见:[主键](../advanced/primary_key.md)
5+
此方法使用主键 `pk` 参数,详见:[主键](../advanced/primary_key.md)
66

77
## 示例
88

docs/usage/update_model.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ async def update_model(
44
session: AsyncSession,
55
pk: int,
66
obj: UpdateSchema | dict[str, Any],
7+
flush: bool = False,
78
commit: bool = False,
89
**kwargs,
910
) -> int:
1011
```
1112

12-
- 此方法使用主键 pk 参数,详见:[主键](../advanced/primary_key.md)
13-
13+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
14+
- 此方法使用主键 `pk` 参数,详见:[主键](../advanced/primary_key.md)
1415
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
15-
1616
- 此方法还提供与 `create_model()` 相同用法的关键字参数
1717

1818
## 示例

docs/usage/update_model_by_column.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ async def update_model_by_column(
44
session: AsyncSession,
55
obj: UpdateSchema | dict[str, Any],
66
allow_multiple: bool = False,
7+
flush: bool = False,
78
commit: bool = False,
89
**kwargs,
910
) -> int:
1011
```
1112

13+
- 此方法提供 `flush` 参数,详见:[冲洗](../advanced/flush.md)
1214
- 此方法提供 `commit` 参数,详见:[提交](../advanced/commit.md)
13-
1415
- 此方法可结合 [高级过滤器](../advanced/filter.md) 使用
1516

1617
## 更新多条

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ nav:
2727
- 高级用法: usage/delete_model_by_column.md
2828
- Advanced:
2929
- 主键: advanced/primary_key.md
30+
- 冲洗: advanced/flush.md
3031
- 提交: advanced/commit.md
3132
- 条件过滤: advanced/filter.md
3233
- Changelog: changelog.md

0 commit comments

Comments
 (0)