利用视图函数(视图)查询数据之后可以通过上下文背景下,字典,列表等方式将数据传递给HTML模板,由模板引擎接收数据并完成解析。但是通过上下文传递数据可能就存在在不同的视图函数中使用重复的查询语句,所以可以通过将重复查询语句设置全局变量,配合当地人()函数进行数据查询与传递。
def指数(请求): threatname='威胁情报展示” url=' www.testtip.com ' allthreat=Threat.objects.all () #推荐位的威胁情报 rec=Threat.objects.filter (rec__id=1) [3] #情报标签 threat_tags=Tag.objects.all () #将上述数据封装至上下文中 上下文={ “threatname”: threatname, “url”: url, “allthreat”: allthreat, “矩形”:矩形, “threat_tags”: threat_tags, } #通过渲染传递上下文至模板模板 返回渲染(请求、index . html的上下文) def threatshow(请求,tid): allthreat=Threat.objects.all () #推荐位的威胁情报 rec=Threat.objects.filter (rec__id=1) [3] #情报标签 threat_tags=Tag.objects.all () #热门情报数据 hot_threat=Threat.objects.filter (hot__id=x) [6] #将sitename& url& allarticle封装至上下文中 上下文={ “allthreat”: allthreat, “矩形”:矩形, “threat_tags”: threat_tags, “hot_threat”: hot_threat, } 返回渲染(请求、threatshow.html的上下文) >之前上面可以看到视图里面有指数()和threatshow()两个视图函数,在这两个视图函数中有三个相同的数据查询语句:
allthreat=Threat.objects.all () #推荐位的威胁情报 rec=Threat.objects.filter (rec__id=1) [3] #情报标签 threat_tags=Tag.objects.all ()
设置全局变量
#全局定义常用查询数据参数 def global_variable(请求): allthreat=Threat.objects.all () #推荐位的威胁情报 rec=Threat.objects.filter (rec__id=1) [3] #情报标签 threat_tags=Tag.objects.all () 返回当地人() 视图中定义上述全局变量后,通过当地人()函数优化如下: def指数(请求): threatname='威胁情报展示” url=' www.testtip.com ' #通过渲染传递上下文至模板模板 返回渲染(请求,“index . html”,当地人()) def threatshow(请求,tid): #热门情报数据 hot_threat=Threat.objects.filter (hot__id=x) [6] 返回渲染(请求,“threatshow.html”,当地人()) >之前Python中的当地人()函数会以字典类型返回当前位置的全部局部变量,也就是返回当前指数(),threatshow()视图函数中定义的局部数据查询结果,加上全局变量当中已经完成了其他剩余数据查询,所以在满足数据查询需求的基础上完成了视图函数优化。
到此这篇关于详解Django中观点数据查询使用当地人()函数进行优化的文章就介绍到这了,更多相关Django当地人()优化内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
详解Django中观点数据查询使用当地人()函数进行优化