django的django-rest框架基本配置
安装django-rest框架
pip install djangorestframework
django-rest框架的基本配置
再项目的settings.py的INSTALLED_APPS中添加相关配置
INSTALLED_APPS = [......'rest_framework',......]
并且进行数据迁移,并且建立超级管理员
python manage.py migratepython manage.py createsuperuser --email admin@example.com --username admin
在建立的app模块中添加serializers.py文件
#导入在models中建立的模型名称from django.contrib.auth.models import User, Groupfrom rest_framework import serializers#要序列化的项有什么class UserSerializer(serializers.HyperlinkedModelSerializer):class Meta:model = Userfields = ['url', 'username', 'email', 'groups']#要序列化的项有什么class GroupSerializer(serializers.HyperlinkedModelSerializer):class Meta:model = Groupfields = ['url', 'name']
是的,我们最好再写一些视图。
from django.contrib.auth.models import User, Group #导入在models中建立的模型名称from rest_framework import viewsetsfrom rest_framework import permissionsfrom tutorial.quickstart.serializers import UserSerializer, GroupSerializer # 导入序列化的类class UserViewSet(viewsets.ModelViewSet):"""API endpoint that allows users to be viewed or edited."""queryset = User.objects.all().order_by('-date_joined')serializer_class = UserSerializerpermission_classes = [permissions.IsAuthenticated]class GroupViewSet(viewsets.ModelViewSet):"""API endpoint that allows groups to be viewed or edited."""queryset = Group.objects.all()serializer_class = GroupSerializerpermission_classes = [permissions.IsAuthenticated]
而不是编写多个视图,我们将所有常见行为分组为,称为类ViewSets。
如果需要,我们可以轻松地将它们分解为单个视图,但是使用视图集可以使视图逻辑组织得很好并且非常简洁。
好的,现在让我们连接API URL。继续tutorial/urls.py…
from django.urls import include, pathfrom rest_framework import routersfrom tutorial.quickstart import viewsrouter = routers.DefaultRouter()router.register(r'users', views.UserViewSet)router.register(r'groups', views.GroupViewSet)# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [path('', include(router.urls)),path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))]
因为我们使用的是视图集而不是视图,所以我们只需为路由器类注册视图集即可自动为我们的API生成URL conf。
同样,如果我们需要对API URL的更多控制,我们可以简单地使用常规的基于类的视图,并显式编写URL conf。
最后,我们包括用于可浏览API的默认登录和注销视图。这是可选的,但如果您的API需要身份验证并且您想使用可浏览的API,则很有用。

