安装djangorestframework
pip install djangorestframework
添加setting.py
INSTALLED_APPS = [
# ...
'rest_framework',
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
]
}创建api包
api/
__init__.py
serializers.py创建 serializers.py
from rest_framework import serializers
from ..models import Role
class RoleSerializer(serializers.ModelSerializer):
class Meta:
model = Role
fields = ['id','name']创建urls.py文件
from . import views
from django.urls import path
app_name = 'apps'
urlpatterns = [
path('Role/', views.RoleListView.as_view(), name='subject_list'),
path('Role/<pk>/', views.RoleDetailView.as_view(), name='subject_detail'),
]创建views.py文件
from rest_framework import generics
from ..models import Role
from .serializers import RoleSerializer
class RoleListView(generics.ListAPIView):
queryset = Role.objects.all()
serializer_class = RoleSerializer
class RoleDetailView(generics.RetrieveAPIView):
queryset = Role.objects.all()
serializer_class = RoleSerializer添加urls.py
from django.urls import path,include
urlpatterns = [
...,
path('api/', include('app.api.urls', namespace='api'))
]python shell
解析
>>> from io import BytesIO
>>> from rest_framework.parsers import JSONParser
>>> data = b'{"id":4,"title":"Programming","slug":"programming"}'
>>> JSONParser().parse(BytesIO(data))
{'id': 4, 'title': 'Programming', 'slug': 'programming'}生成
>>> from rest_framework.renderers import JSONRenderer
>>> JSONRenderer().render(serializer.data)
b'{"id":4,"title":"Programming","slug":"programming"}'