django rest-framework修改数据库
时间: 2023-12-22 09:50:34 浏览: 42
如果要使用 Django REST framework 修改数据库,可以使用以下方法:
1. 使用 Django ORM 查询数据库,然后修改查询结果对象的属性并调用 `save()` 方法保存修改。
2. 使用 Django REST framework 的序列化器 (serializer) 和视图 (view),将修改提交给 API 端点,并使用 `update()` 方法保存修改。
下面是一个简单的例子:
```
# serializers.py
from rest_framework import serializers
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ('id', 'title', 'author', 'price')
# views.py
from rest_framework import viewsets
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
# urls.py
from django.urls import include, path
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'books', views.BookViewSet)
urlpatterns = [
path('api/', include(router.urls)),
]
```
在这个例子中,你可以使用 HTTP PUT 方法发送修改请求到 `/api/books/<id>/` 端点,其中 `<id>` 是要修改的书的 ID。你可以在请求的正文中包含修改后的数据,然后 Django REST framework 会使用序列化器验证数据并调用 `update()` 方法保存修改。
希望这个回答对你有帮助!
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)