【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/<site>/', views.EmployeeUserDef, name='EmployeeUserDef'),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值