| 
 | 
 
 
 楼主 |
发表于 2021-9-14 18:38:08
|
显示全部楼层
 
 
 
 本帖最后由 niceyes 于 2021-9-14 18:53 编辑  
 
 
问题一个一个出来, 最终还是回到初始的问题.       分页可以了, 但每点一次页, 后端都要走一次视图函数 filter(),      当 filte()r数据量多时,那个卡啊..  ,这痛点, 不知道怎么解决  
 
  一开始,我是三个关系数据表查,我以为三个mysql 关系数据 外键 ,导致速度慢  
后来,我又把三个表合成一个表,,,感觉也没快多少. 
 后来我又到淘宝上请人帮忙解决, 速度感觉还是不行,,, 如果不分页,一次加载完成 , 分页后,每页都要重新加载一次,  
 
  search_rebar=Rebar.objects.filter(project_name__contains=project_name) 
 
        for rebar in search_rebar[int(page_num)*20-20:int(page_num)*20]: #一页20条数据 
            #把查询结果生成字典 
            result_dict={.....                      
                        } 
            result_list.append(result_dict) 
        import math  
        #页面总数 
        page_count = math.ceil(len(search_rebar)/20) 
        #当前页 
        page_c=int(page_num) 
        #下一页 
        next_page_number = page_num+1 if page_count>page_num else False 
 
影响速度是FOR ...        ,我用excal 写vba代码 ,     select速度要都比django快多了, 晕死 
        #上一页 
        previous_page_number = page_num-1 if page_num>1 else False |   
 
 
 
 |