flask 逻辑删除字段
时间: 2023-09-14 13:11:56 浏览: 38
在 Flask 中实现逻辑删除字段的方法可以有多种,以下是其中一种:
1. 在数据库表中添加一个名为 `is_deleted` 的布尔类型字段,用于记录该记录是否被删除。
2. 在 Flask 中定义一个装饰器,用于在删除操作时将 `is_deleted` 字段设置为 True。
```python
from functools import wraps
from flask import abort
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def logical_delete(func):
@wraps(func)
def wrapper(*args, **kwargs):
obj = db.session.query(func.__self__).filter_by(id=kwargs['id']).first()
if obj:
obj.is_deleted = True
db.session.commit()
return {"message": "Successfully deleted."}, 200
else:
abort(404)
return wrapper
```
3. 在 Flask 的路由中使用装饰器来进行逻辑删除操作。
```python
@app.route('/delete/<int:id>', methods=['DELETE'])
@logical_delete
def delete(id):
pass
```
这样,在执行删除操作时,会将对应记录的 `is_deleted` 字段设置为 True,而不是真正地从数据库中删除该记录。这种方式可以保留被删除记录的历史信息,并且可以在需要时进行恢复操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)