色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Django中views數(shù)據(jù)查詢使用locals()函數(shù)進(jìn)行優(yōu)化

瀏覽:119日期:2024-09-23 10:00:36

優(yōu)化場景

利用視圖函數(shù)(views)查詢數(shù)據(jù)之后可以通過上下文context、字典、列表等方式將數(shù)據(jù)傳遞給HTML模板,由template引擎接收數(shù)據(jù)并完成解析。但是通過context傳遞數(shù)據(jù)可能就存在在不同的視圖函數(shù)中使用重復(fù)的查詢語句,所以可以通過將重復(fù)查詢語句設(shè)置全局變量,配合locals()函數(shù)進(jìn)行數(shù)據(jù)查詢與傳遞。

優(yōu)化前

def index(request): threatname = ’威脅情報(bào)展示’ url = ’www.testtip.com’ allthreat = Threat.objects.all() #推薦位的威脅情報(bào) rec = Threat.objects.filter(rec__id=1)[:3] #情報(bào)標(biāo)簽 threat_tags = Tag.objects.all() #將上述數(shù)據(jù)封裝至上下文中 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() #推薦位的威脅情報(bào) rec = Threat.objects.filter(rec__id=1)[:3] #情報(bào)標(biāo)簽 threat_tags = Tag.objects.all() # 熱門情報(bào)數(shù)據(jù) 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)

上面可以看到 views 里面有 index() 和 threatshow() 兩個視圖函數(shù),在這兩個視圖函數(shù)中有三個相同的數(shù)據(jù)查詢語句:

allthreat = Threat.objects.all() #推薦位的威脅情報(bào) rec = Threat.objects.filter(rec__id=1)[:3] #情報(bào)標(biāo)簽 threat_tags = Tag.objects.all()

優(yōu)化后

設(shè)置全局變量

# 全局定義常用查詢數(shù)據(jù)參數(shù)def global_variable(request): allthreat = Threat.objects.all() #推薦位的威脅情報(bào) rec = Threat.objects.filter(rec__id=1)[:3] #情報(bào)標(biāo)簽 threat_tags = Tag.objects.all() return locals()views 中定義上述全局變量后,通過locals()函數(shù)優(yōu)化如下:def index(request): threatname = ’威脅情報(bào)展示’ url = ’www.testtip.com’ #通過render傳遞上下文至模板templates return render(request,’index.html’,locals())def threatshow(request,tid): # 熱門情報(bào)數(shù)據(jù) hot_threat = Threat.objects.filter(hot__id=x)[:6] return render(request, ’threatshow.html’,locals())

Python 中的 locals() 函數(shù)會以字典類型返回當(dāng)前位置的全部局部變量,也就是返回當(dāng)前 index() 、 threatshow() 視圖函數(shù)中定義的局部數(shù)據(jù)查詢結(jié)果,加上全局變量當(dāng)中已經(jīng)完成了其他剩余數(shù)據(jù)查詢,所以在滿足數(shù)據(jù)查詢需求的基礎(chǔ)上完成了視圖函數(shù)優(yōu)化。

到此這篇關(guān)于詳解Django中views數(shù)據(jù)查詢使用locals()函數(shù)進(jìn)行優(yōu)化的文章就介紹到這了,更多相關(guān)Django locals()優(yōu)化內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 国产成人影院在线观看 | 尤物蜜芽福利国产污在线观看 | 亚洲日本韩国在线 | 免费视频亚洲 | 一级女性全黄久久生活片 | 久草视频中文在线 | 国产成人精品一区二区秒拍 | 欧美视频在线观看免费精品欧美视频 | 国产区一区二区三区 | 欧美另类交视频 | 国产经典一区 | 爽爽爽爽爽爽a成人免费视频 | 国产精品毛片天天看片 | 日本三级香港三级人妇99 | 亚洲精品综合在线 | 波多野一区二区三区在线 | 久久精品一区二区国产 | 玖草资源在线 | 精品欧美一区二区三区精品久久 | 精品日韩欧美一区二区三区在线播放 | 黄色美女网站视频 | 日韩欧美在线观看视频一区二区 | 日本一级特黄特色大片免费视频 | 免费人成在线观看网站品爱网 | 波多野结衣一级视频 | 久久久免费视频播放 | 国产原创一区二区 | 亚洲理论片在线观看 | 日韩特级 | 国产成人手机视频 | 亚洲男人的天堂在线视频 | 国产精品欧美一区二区三区 | 成人网在线视频 | 一区二区三区在线观看视频 | 亚洲福利视频一区二区三区 | 性欧美另类老妇高清 | 一二三中文乱码亚洲乱码 | 午夜爽爽爽男女免费观看hd | 在线 | 一区二区三区四区 | 欧美.成人.综合在线 | 国产亚洲高清不卡在线观看 |