亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年08月24日 08:29:59   作者:303donatello  
這篇文章主要介紹了Django中views數(shù)據(jù)查詢使用locals()函數(shù)進行優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

優(yōu)化場景

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

優(yōu)化前

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()
  #將上述數(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()
  #推薦位的威脅情報
  rec = Threat.objects.filter(rec__id=1)[:3]
  #情報標簽
  threat_tags = Tag.objects.all()
  # 熱門情報數(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()
  #推薦位的威脅情報
  rec = Threat.objects.filter(rec__id=1)[:3]
  #情報標簽
  threat_tags = Tag.objects.all()

優(yōu)化后

設置全局變量

# 全局定義常用查詢數(shù)據(jù)參數(shù)
def global_variable(request):
  allthreat = Threat.objects.all()
  #推薦位的威脅情報
  rec = Threat.objects.filter(rec__id=1)[:3]
  #情報標簽
  threat_tags = Tag.objects.all()
  return locals()
views 中定義上述全局變量后,通過locals()函數(shù)優(yōu)化如下:

def index(request):
  threatname = '威脅情報展示'
  url = 'www.testtip.com'
  #通過render傳遞上下文至模板templates
  return render(request,'index.html',locals())
def threatshow(request,tid):
  # 熱門情報數(shù)據(jù)
  hot_threat = Threat.objects.filter(hot__id=x)[:6]
  return render(request, 'threatshow.html',locals())

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

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

相關文章

  • Python TCP全連接攻擊中SockStress全連接攻擊詳解

    Python TCP全連接攻擊中SockStress全連接攻擊詳解

    Sock Stress 全連接攻擊屬于TCP全連接攻擊,因為需要建立一次完整的TCP三次握手,該攻擊的關鍵點就在于,攻擊主機將windows窗口緩沖設置為0,實現(xiàn)的拒絕服務
    2022-10-10
  • python中dict字典的查詢鍵值對 遍歷 排序 創(chuàng)建 訪問 更新 刪除基礎操作方法

    python中dict字典的查詢鍵值對 遍歷 排序 創(chuàng)建 訪問 更新 刪除基礎操作方法

    字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中,本文講述了python中dict字典的查詢鍵值對 遍歷 排序 創(chuàng)建 訪問 更新 刪除基礎操作方法
    2018-09-09
  • 從入門到精通:玩轉(zhuǎn)Python?Fire庫

    從入門到精通:玩轉(zhuǎn)Python?Fire庫

    想快速打造屬于你的Python?GUI應用嗎?拋開復雜的代碼,用Python?Fire庫就能輕松實現(xiàn)!本指南將引領你從零起步,駕馭Python?Fire的強大功能,讓編程既簡單又高效,準備好了嗎?讓我們開始玩轉(zhuǎn)Python?Fire,開啟你的編程冒險吧!
    2024-02-02
  • python為圖片和PDF去水印詳解

    python為圖片和PDF去水印詳解

    大家好,本篇文章主要講的是python為圖片和PDF去水印詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • numpy 計算兩個數(shù)組重復程度的方法

    numpy 計算兩個數(shù)組重復程度的方法

    今天小編就為大家分享一篇numpy 計算兩個數(shù)組重復程度的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 利用python/R語言繪制圣誕樹實例代碼

    利用python/R語言繪制圣誕樹實例代碼

    圣誕節(jié)快到了,分別用R和Python繪制了圣誕樹祝你們圣誕節(jié)快樂,所以下面這篇文章主要給大家介紹了關于如何利用python/R繪制圣誕樹的相關資料,需要的朋友可以參考下
    2021-12-12
  • 跟老齊學Python之Python文檔

    跟老齊學Python之Python文檔

    文檔,這個詞語在經(jīng)常在程序員的嘴里冒出來,有時候他們還經(jīng)常以文檔有沒有或者全不全為標準來衡量一個軟件項目是否高大上。那么,軟件中的文檔是什么呢?有什么要求呢?python文檔又是什么呢?文檔有什么用呢?
    2014-10-10
  • 關于python中inspect模塊用法詳解

    關于python中inspect模塊用法詳解

    這篇文章主要介紹了關于python中inspect模塊用法詳解,獲取函數(shù)簽名對象。函數(shù)簽名包含了一個函數(shù)的信息,包括函數(shù)名、它的參數(shù)類型、它所在的類和名稱空間及其他信息,需要的朋友可以參考下
    2023-07-07
  • python使用chardet判斷字符串編碼的方法

    python使用chardet判斷字符串編碼的方法

    這篇文章主要介紹了python使用chardet判斷字符串編碼的方法,涉及Python編碼的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • django的安裝和創(chuàng)建應用過程詳解

    django的安裝和創(chuàng)建應用過程詳解

    這篇文章主要介紹了django的安裝和創(chuàng)建應用,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07

最新評論