Python接口自动化15-Django后台设置
登录Django后台
输入网址:http://127.0.0.1:8001/admin
输入创建的账号和密码
数据序列化
Django后台自带了Groups和Users,我们可以对这两个进行数据序列化
在api下创建serializers.py文件
from django.contrib.auth.models import User,Group from rest_framework import serializers class UserSerializer(serializers.HyperlinkedModelSerializer): #继承serializers的类 class Meta: model=User fields=('url','username','email','group') class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group fields=('url','name')
创建视图
视图用于如何向用户展示数据,展示哪些数据,比如用户查询User信息或者查询Group信息,那么程序内部要定要好怎么去查询,在Django REST framework中,ViewSets用于定义视图的展现形式,例如返回哪些内容,需要做哪些权限处理。
views.py文件代码:
from django.shortcuts import render #响应http的返回内容 from django.contrib.auth.models import User,Group #导入Django自带的user和group库 from rest_framework import viewsets #viewsets用于视图的展现形式 from api.serializers import UserSerializer,GroupSerializer #导入自定义的两个序列化类 # Create your views here. class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() #查询user表的全部信息 serializer_class = UserSerializer #serializers_class会找到对应的Serializers class GroupViewSet(viewsets.ModelViewSet): queryset = Group.objects.all() #查询Group表的全部信息 serializer_class = GroupSerializer
在URL中会定义相应的规则到ViewSets,ViewSets则通过serializers_class找到对应的Serializers.这里将User和Group的所有对象赋予queryset,并返回这些值
在UserSerializer和GroupSerialize中定义要返回的字段。
URL路由配置
urls.py文件代码:
from django.contrib import admin from django.urls import path from django.conf.urls import include from rest_framework import routers #导入路由 from api import views #配置路由 router = routers.DefaultRouter() #生成路由对象 router.register(r'users',views.UserViewSet) #输入users会指向views中的UserViewSet router.register(r'groups',views.GroupViewSet)#输入groups会指向views中的GroupViewSet urlpatterns = [ path('admin/', admin.site.urls), #这个路径就是http://127.0.0.1:8000/admin/ path('',include(router.urls)), #这个路径就是http://127.0.0.1:8000/ 后面可以根users或者groups path('api-auth/',include('rest_framework.urls',namespace='rest_framework')) ]
可以查看配置完的页面
输入网址:http://127.0.0.1:8001/users/
这里看到的url,username,email,group就是序列化里面的配置。
我在运行时候出现了错误如下
ImproperlyConfigured at /users/ Field name `group` is not valid for model `User`.
翻译:
ImproperlyConfigured /用户/字段名称“group”对模型“User”无效
处理方法是:在serializer.py里取消group
再次运行服务》打开http://127.0.0.1:8001/
输入地址:http://127.0.0.1:8001/groups/
在Name输入框输入test点击POST
生成了序号为1的test数据,数据内容包含了url,name,就是序列化里面设置的内容。