下面是“Django+RestFramework API接口及接口文档并返回json数据操作”的完整攻略:
一、前置条件
在使用Django RestFramework进行接口开发之前,需要先安装以下软件:
- Python 3.x
- Django
- Django RestFramework
二、创建Django项目
首先,我们需要创建一个Django项目。
可以使用以下命令创建一个名为“myproject”的Django项目:
$ django-admin startproject myproject
然后进入项目的根目录:
$ cd myproject
三、创建Django APP
接着我们需要创建一个Django APP,用来存放我们的API接口。
可以使用以下命令创建一个名为“api”的Django APP:
$ python manage.py startapp api
接下来,我们需要在Django项目的“settings.py”文件中安装我们创建的“api”应用程序。
INSTALLED_APPS = [
...
'api',
'rest_framework',
]
四、创建Model
在这个示例中,我们将使用一个blog文章模型来展示如何创建RESTful API。
首先,我们需要在Django APP的“models.py”文件中定义一个blog文章的模型。
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
五、创建Serializer
接下来我们需要创建一个serializer来将数据序列化为JSON。
在Django APP的“serializers.py”文件中,使用以下代码创建序列化程序。
from rest_framework import serializers
from .models import Blog
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
fields = ('id', 'title', 'content', 'created_at')
六、创建View
接下来,我们将在Django中创建一个视图,用于处理blog文章的HTTP请求。
在Django APP的“views.py”文件中,使用以下代码创建视图。
from rest_framework import generics
from .models import Blog
from .serializers import BlogSerializer
class BlogList(generics.ListCreateAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
class BlogDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
七、创建URL
最后一步是创建URL。
在Django APP的“urls.py”文件中,使用以下代码创建URL。
from django.urls import path
from .views import BlogList, BlogDetail
urlpatterns = [
path('blog/', BlogList.as_view(), name='blog-list'),
path('blog/<int:pk>/', BlogDetail.as_view(), name='blog-detail'),
]
这两条路由将允许我们在“/blog/”和“/blog/
八、运行并测试
现在我们可以运行Django开发服务器了:
$ python manage.py runserver
在浏览器中访问http://127.0.0.1:8000/blog/,您将看到JSON数据列表,其中包含所有blog文章。
九、接口文档
我们使用Django Rest Framework提供的Swagger API文档来为我们生成接口文档。
在Django项目的“settings.py”文件中,添加以下设置:
INSTALLED_APPS = [
...
'rest_framework_swagger',
]
SWAGGER_SETTINGS = {
'USE_SESSION_AUTH': False,
'SECURITY_DEFINITIONS': {
'basic': {
'type': 'basic'
}
}
}
在Django APP的“urls.py”文件中,使用以下代码更改URL。
from django.urls import path, include
from rest_framework_swagger.views import get_swagger_view
schema_view = get_swagger_view(title='API接口文档')
urlpatterns = [
path('docs/', schema_view),
...
]
现在在浏览器中访问http://127.0.0.1:8000/docs/,您将看到由Django Rest Framework Swagger生成的API接口文档。
十、示例
1、POST请求
我们可以使用Django Rest Framework提供的POST请求测试工具来测试POST请求。
1)打开http://127.0.0.1:8000/docs/,找到“POST /blog/”请求。
2)单击该请求,您将看到一个POST请求表单。
3)在“数据”字段中输入以下数据,然后单击“尝试”按钮。
{
"title": "My Awesome Blog",
"content": "Hello World!"
}
4)您将看到以下响应:
{
"id": 1,
"title": "My Awesome Blog",
"content": "Hello World!",
"created_at": "2021-01-01T00:00:00Z"
}
2、GET请求
我们可以使用浏览器访问API URL来测试GET请求。
1)打开http://127.0.0.1:8000/docs/,找到“GET /blog/”请求。
2)单击该请求,您将看到一个GET请求表单。
3)单击“试一试”按钮,您将看到以下JSON响应:
[
{
"id": 1,
"title": "My Awesome Blog",
"content": "Hello World!",
"created_at": "2021-01-01T00:00:00Z"
}
]
这样我们就完成了Django RestFramework API接口及接口文档并返回json数据操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django+RestFramework API接口及接口文档并返回json数据操作 - Python技术站