|

楼主 |
发表于 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 |
|