栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Django-Talent系统】Django Rest Framework序列化数据API--20220614

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Django-Talent系统】Django Rest Framework序列化数据API--20220614

参考链接:https://www.csdn.net/tags/MtTaMg5sMzA1NTM4LWJsb2cO0O0O.html

效果:by 不同参数来访问http://127.0.0.1:8000/EmployeeUserDef_drf/WCD/可以得到site的数据。

代码: settings.py
INSTALLED_APPS = [

    'rest_framework',

]



# Django Rest Framework框架设置信息
# 分页设置
REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    # 每页显示多少条数据
    'PAGE_SIZE': 1000
}


serializers.py
from rest_framework import serializers
from .models import EmployeeUser

# 定义ModelSerializer类
class EmployeeUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = EmployeeUser
        #fields = '__all__'
        fields = ("site",
                "employee_name",
                "plantid",
                "employee_id",
                "employee_dept",
                "turnoverrate_finished_or_not",
                "Personal_goal_finished_or_not",
                "Group_goal_finished_or_not",
                "KPI_finished_or_not",
                "competition_finished_or_not",
                "workshop_finished_or_not",
                "oneonone_finished_or_not",
                "leadership_case_finished_or_not",
                "ddi_training_finished_or_not",
                "manager_training_finished_or_not",
                )


views.py

PageNumberPagination()可以替换成PageNumberPaginator(PageNumberPagination),也可以使用默认的PageNumberPagination()

# page参数失效,默认返回前1000条数值
from rest_framework.pagination import PageNumberPagination
class PageNumberPaginator(PageNumberPagination):
    page_size = 1000  # 每页显示10条数据
    page_size_query_param = 'size'  # 每页显示条数的参数名称
    page_query_param = 'page'   # 页码参数名称,比如page=3&size=10 第三页显示10条
    max_page_size = 10  # 最大页码数量控制

@api_view(['GET'])
def EmployeeUserDef(request,site):
    if request.method == 'GET':
        q = EmployeeUser.objects.all().filter(site=site).order_by('id')
        # 分页查询,需要在settings.py设置REST_FRAMEWORK属性
        #pg = PageNumberPagination()
        pg = PageNumberPaginator()
        p = pg.paginate_queryset(queryset=q, request=request)
        # 将分页后的数据传递MySerializer,生成JSON数据对象
        serializer = EmployeeUserSerializer(instance=p, many=True)
        # 返回对象Response由Django Rest Framework实现
        return Response(serializer.data)
urls.py
    path('EmployeeUserDef_drf//', views.EmployeeUserDef, name='EmployeeUserDef'),
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/972036.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号