django rest-framework demo代码
时间: 2023-10-04 14:08:14 浏览: 111
以下是一个简单的 Django Rest Framework 示例:
首先,安装 `django` 和 `djangorestframework`:
```
pip install django
pip install djangorestframework
```
在项目中创建一个新的应用程序:
```
python manage.py startapp myapp
```
在 `myapp` 应用程序的 `models.py` 中定义一个模型:
```python
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
publication_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return self.title
```
在 `myapp` 应用程序的 `serializers.py` 中定义一个序列化器:
```python
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
```
在 `myapp` 应用程序的 `views.py` 中定义一个视图:
```python
from rest_framework import generics
from .models import Book
from .serializers import BookSerializer
class BookList(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
class BookDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
```
现在,在项目的 `urls.py` 文件中,将以下 URL 映射到我们的新视图:
```python
from django.urls import path
from myapp.views import BookList, BookDetail
urlpatterns = [
path('books/', BookList.as_view(), name='book-list'),
path('books/<int:pk>/', BookDetail.as_view(), name='book-detail'),
]
```
现在,我们可以使用 Django Rest Framework 测试我们的 API。启动 Django 开发服务器:
```
python manage.py runserver
```
在浏览器中访问 `http://localhost:8000/books/`,你应该看到一个空的 JSON 数组。现在,我们可以使用 POST 请求添加一些书籍:
```
curl -X POST -H 'Content-Type: application/json' -d '{"title": "My Book", "author": "John Smith", "publication_date": "2021-01-01", "price": 19.99}' http://localhost:8000/books/
```
现在,我们可以使用 GET 请求获取所有书籍:
```
curl http://localhost:8000/books/
```
我们还可以使用 GET 请求获取单个书籍:
```
curl http://localhost:8000/books/1/
```
最后,我们可以使用 PUT 或 PATCH 请求更新书籍:
```
curl -X PUT -H 'Content-Type: application/json' -d '{"title": "My Book Revised", "author": "John Smith", "publication_date": "2021-01-01", "price": 24.99}' http://localhost:8000/books/1/
```
还可以使用 DELETE 请求删除书籍:
```
curl -X DELETE http://localhost:8000/books/1/
```
这就是一个简单的 Django Rest Framework 示例。
阅读全文