详解Django中views数据查询使用locals()函数进行优化-创新互联
优化场景
利用视图函数(views)查询数据之后可以通过上下文context、字典、列表等方式将数据传递给HTML模板,由template引擎接收数据并完成解析。但是通过context传递数据可能就存在在不同的视图函数中使用重复的查询语句,所以可以通过将重复查询语句设置全局变量,配合locals()函数进行数据查询与传递。
优化前
def index(request): threatname = '威胁情报展示' url = 'www.testtip.com' allthreat = Threat.objects.all() #推荐位的威胁情报 rec = Threat.objects.filter(rec__id=1)[:3] #情报标签 threat_tags = Tag.objects.all() #将上述数据封装至上下文中 context = { 'threatname': threatname, 'url': url, 'allthreat': allthreat, 'rec':rec, 'threat_tags':threat_tags, } #通过render传递上下文至模板templates return render(request,'index.html',context) def threatshow(request,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封装至上下文中 context = { 'allthreat': allthreat, 'rec':rec, 'threat_tags':threat_tags, 'hot_threat':hot_threat, } return render(request, 'threatshow.html',context)
新闻标题:详解Django中views数据查询使用locals()函数进行优化-创新互联
分享链接:http://myzitong.com/article/doeihh.html