django给app返回接口列表, 流式分页

# -*- coding: utf-8 -*-
__author__ = 'YongCong Wu'
# @Time    : 2019/12/30 12:45
# @Email   :  : 1922878025@qq.com



class Pagenation(object):

    def __init__(self,data_list,page,per_data_num = 10):
        '''
        初始化
        :param data_list: 所有数据列表
        :param page: 当前要查看的列表页
        :param per_data_num: 每页默认要显示几条
        '''
        self.data_list = data_list
        self.page = page
        self.per_data_num = per_data_num

    @property
    def start(self):
        '''
        计算引索的起始位置
        :return:
        '''
        return (self.page - 1) * self.per_data_num

    @property
    def end(self):
        '''
        计算引索的结束位置
        :return:
        '''
        return self.page * self.per_data_num

    def show(self):
        '''
        切片取数据,展示对应分页的结果
        :return:
        '''
        result = self.data_list[self.start:self.end]
        data = []
        for row in result:
            data.append(row)
        return data
def articleNews(request, question_id):
    result = {}
    data = []
    print(question_id)
    content_list = models.AriticeModel.objects.all()
    for i in content_list:
        data_dict = {}
        data_dict['image'] = i.img_url
        data_dict['id'] = i.id
        data_dict['post_title'] = i.title
        data_dict['post_like'] = 525
        data_dict['category_name'] = i.aritice_gjz
        data.append(data_dict)

    obj = pagetion.Pagenation(data, question_id)
    result['data'] = obj.show()
    result['code'] = 200
    return JsonResponse(result)

 

posted @ 2019-12-30 12:52  WrYcF  阅读(661)  评论(0编辑  收藏  举报
Live2D