最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django ORM之values和annotate使用詳解

 更新時(shí)間:2020年05月19日 09:56:12   作者:宅神kin  
這篇文章主要介紹了django ORM之values和annotate使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

任務(wù)需求:項(xiàng)目中有個(gè)問題表,存儲所有的問題,以_id為編號,由于_id未做唯一校驗(yàn),所以早期數(shù)據(jù)有多個(gè)問題使用同一編號的情況。

需求就是找出編號有重復(fù)的數(shù)據(jù),只保留第一個(gè)

開始之前

使用了values和annotate兩個(gè)函數(shù)

簡單的來說values可以理解成展示models指定列的值

annotate起到了group by的作用,

所以我做的事就是對指定字段按個(gè)數(shù)進(jìn)行統(tǒng)計(jì),然后留下重復(fù)編號的數(shù)據(jù),進(jìn)行清洗

看看數(shù)據(jù)庫數(shù)據(jù)

查看每條數(shù)據(jù)的_id的值

對_id數(shù)據(jù)條數(shù)進(jìn)行統(tǒng)計(jì)

轉(zhuǎn)換數(shù)據(jù)格式為list

Emmm。。。我只需要重復(fù)數(shù)據(jù),所以把_id唯一的數(shù)據(jù)剔除

寫個(gè)簡單的遍歷

然后只需要找到這些數(shù)據(jù),對每個(gè)_id只留下第一條數(shù)據(jù)

導(dǎo)出sql,做個(gè)備份,開始刪除數(shù)據(jù)

最終處理:

刪除過程:

再回到網(wǎng)站看看數(shù)據(jù)清洗后的效果

補(bǔ)充知識:django中annotate的一點(diǎn)使用方法

annotate 使用方法:

有時(shí)候我們需要連接兩個(gè)表做一些查詢,比如博客中有兩個(gè)模型,一個(gè)文章模型,一個(gè)分類模型,分類模型是文章中的分類字段的外鍵,如果我們需要查詢每個(gè)分類下文章的數(shù)量,最簡單的方法就是先將所有分類查到:

categories = NewsCategory.objects.all()

文章模型名稱為News

然后每個(gè)分類django都會自動給你添加一個(gè)屬性category.news_set,這個(gè)方法就可以拿到分類對應(yīng)的文章,然后category.news_set.count()就可以拿到每個(gè)分類有多少個(gè)文章了。

但是這個(gè)方法很低級啊,如果想高級一點(diǎn),查詢性能更優(yōu)化,annotate了解一下

現(xiàn)在就可以對上面的查詢方法進(jìn)行優(yōu)化了。

categories = NewsCategory.objects.annotate(num_count=Count('news'))

annotate中其實(shí)是給categories(Queryset)添加了一個(gè)屬性,Queryset中的每個(gè)對象都會有這么一個(gè)屬性

現(xiàn)在可以這樣查詢分類下的文章數(shù)量:

category.num_count()

將代碼貼出來

原先的代碼:

 def cms_news_category(request):
 categories = NewsCategory.objects.all()
 context = {
  'categories': categories
 }
 return render(request, 'cms/category.html', context=context)
 
 模板category.html中的代碼:
 {% for category in categories %}
  <td>{{ category.name }}</td>
  <td>{{ category.news_set.count }}</td>
 {% endfor %}

使用annotate后的代碼:

 def cms_news_category(request):
 categories = NewsCategory.objects.annotate(num_count=Count('news'))
 context = {
  'categories': categories
 }
 return render(request, 'cms/category.html', context=context)
 模板category.html中的代碼: 
 {% for category in categories %}
  <td>{{ category.name }}</td>
  <td>{{ category.num_count }}</td>
 {% endfor %}

以上這篇django ORM之values和annotate使用詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用python serial 獲取所有的串口名稱的實(shí)例

    使用python serial 獲取所有的串口名稱的實(shí)例

    今天小編就為大家分享一篇使用python serial 獲取所有的串口名稱的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 對python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解

    對python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解

    今天小編就為大家分享一篇對python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談django rest jwt vue 跨域問題

    淺談django rest jwt vue 跨域問題

    這篇文章主要介紹了django rest jwt vue 跨域問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 如何使用repr調(diào)試python程序

    如何使用repr調(diào)試python程序

    這篇文章主要介紹了如何使用repr調(diào)試python程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python 對類的成員函數(shù)開啟線程的方法

    python 對類的成員函數(shù)開啟線程的方法

    今天小編就為大家分享一篇python 對類的成員函數(shù)開啟線程的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python中的對象拷貝示例 python引用傳遞

    python中的對象拷貝示例 python引用傳遞

    你想復(fù)制一個(gè)對象?因?yàn)樵赑ython中,無論你把對象做為參數(shù)傳遞,做為函數(shù)返回值,都是引用傳遞的
    2014-01-01
  • Python 編程語言詳細(xì)介紹

    Python 編程語言詳細(xì)介紹

    這篇文章主要分享的是 Python 編程語言的詳細(xì)介紹,Python 由 Guido van Rossum 設(shè)計(jì),作為“ABC”編程語言的繼承者,于 1991 年首次發(fā)布。它是一種高級通用語言,其設(shè)計(jì)理念是通過使用縮進(jìn)來強(qiáng)調(diào)代碼的可讀性。文章具有一定的參考價(jià)值,需要的朋友可以參考一下
    2021-11-11
  • Django實(shí)現(xiàn)列表頁商品數(shù)據(jù)返回教程

    Django實(shí)現(xiàn)列表頁商品數(shù)據(jù)返回教程

    這篇文章主要介紹了Django實(shí)現(xiàn)列表頁商品數(shù)據(jù)返回教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python配置mssql連接的方法

    python配置mssql連接的方法

    這篇文章主要介紹了python配置mssql連接的方法,需要的朋友可以參考下
    2021-06-06
  • 用Python進(jìn)行websocket接口測試

    用Python進(jìn)行websocket接口測試

    這篇文章主要介紹了用Python進(jìn)行websocket接口測試,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10

最新評論

平舆县| 德江县| 朝阳市| 井研县| 怀来县| 乌什县| 松滋市| 永泰县| 桓仁| 仲巴县| 鄂托克前旗| 隆回县| 泰顺县| 勐海县| 铜陵市| 永安市| 瑞安市| 民丰县| 盘山县| 白山市| 长泰县| 沐川县| 福安市| 泉州市| 玉屏| 镇平县| 阆中市| 峡江县| 临安市| 崇礼县| 蒲江县| 漳州市| 玉树县| 孟村| 通化县| 息烽县| 宁德市| 礼泉县| 夏津县| 郎溪县| 霍邱县|