欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何查看Django ORM執(zhí)行的SQL語句的實現(xiàn)

 更新時間:2020年04月20日 08:59:36   作者:Young先生  
這篇文章主要介紹了如何查看Django ORM執(zhí)行的SQL語句的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Django ORM對數(shù)據(jù)庫操作的封裝相當完善,日常大部分數(shù)據(jù)庫操作都可以通過ORM實現(xiàn)。但django將查詢過程隱藏在了后臺,這在開發(fā)時可能會略顯晦澀,并且使用方式不當還會造成開銷過大。

那么如何查看django何時執(zhí)行了什么sql語句呢?答案是使用Logging。

先直接上方法,在settings.py中加入LOGGING選項,調(diào)整logging等級為DEBUG即可:

LOGGING = {
  'version': 1,
  'disable_existing_loggers': False,
  'formatters': {
    'simple': {
      'format': '[%(asctime)s] %(message)s'
    },
  },
  'handlers': {
    'console': {
      'level': 'DEBUG',
      'class': 'logging.StreamHandler',
      'formatter': 'simple'
    },
  },
  'loggers': {
    'django': {
      'handlers': ['console'],
      'level': 'DEBUG',
    },
  },
}

然后啟動runserver,瀏覽需要訪問數(shù)據(jù)庫的頁面,在shell中即可看見相關日志,如下:

[2018-04-21 21:09:14,676] (0.002) SELECT `blog_article`.`id`, `blog_article`.`title`, `blog_article`.`cover`, `blog_article`.`content`, `blog_article`.`pub_date`, `blog_article`.`category_id`, `blog_article`.`views`, `blog_category`.`id`, `blog_category`.`name` FROM `blog_article` INNER JOIN `blog_category` ON (`blog_article`.`category_id` = `blog_category`.`id`) WHERE `blog_article`.`pub_date` < '2018-04-21 13:09:14.601856' ORDER BY `blog_article`.`pub_date` DESC LIMIT 10; args=('2018-04-21 13:09:14.601856',)
[2018-04-21 21:09:14,678] (0.000) SELECT (`blog_article_topics`.`article_id`) AS `_prefetch_related_val_article_id`, `blog_topic`.`id`, `blog_topic`.`name`, `blog_topic`.`number` FROM `blog_topic` INNER JOIN `blog_article_topics` ON (`blog_topic`.`id` = `blog_article_topics`.`topic_id`) WHERE `blog_article_topics`.`article_id` IN (3, 4, 5, 6, 7, 8, 9, 10, 11, 12) ORDER BY `blog_topic`.`number` ASC; args=(3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
[2018-04-21 21:09:14,708] "GET / HTTP/1.1" 200 22325

上面打印出的日志是我的博客首頁獲取前十篇文章時所執(zhí)行的部分SQL語句,其對應的QuerySet為

Article.objects.filter(pub_date__lt=timezone.now())[:10] \
.defer('author', 'category__number') \
.select_related('category') \
.prefetch_related('topics')

通過Logging不僅可以查看SQL語句,還可以由此知道django何時執(zhí)行了SQL。在某些情況下我們可以通過這種方式判斷,后臺是否重復執(zhí)行了SQL語句,便于指導數(shù)據(jù)庫訪問優(yōu)化。

Django使用Python的內(nèi)建的logging模塊執(zhí)行系統(tǒng)日志記錄。

到此這篇關于如何查看Django ORM執(zhí)行的SQL語句的實現(xiàn)的文章就介紹到這了,更多相關Django ORM執(zhí)行SQL語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例

    Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例

    這篇文章主要介紹了Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法,涉及Python針對數(shù)組的排序、查找等相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • 簡單講解Python中的字符串與字符串的輸入輸出

    簡單講解Python中的字符串與字符串的輸入輸出

    這篇文章主要介紹了Python中的字符串與字符串的輸入輸出,Python3.x版本中默認以Unicode為編碼,省去了不少麻煩,需要的朋友可以參考下
    2016-03-03
  • Python面向?qū)ο蠡A入門之編碼細節(jié)與注意事項

    Python面向?qū)ο蠡A入門之編碼細節(jié)與注意事項

    這篇文章主要給大家介紹了關于Python面向?qū)ο蠡A入門之編碼細節(jié)與注意事項的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2018-12-12
  • 在Python中合并字典模塊ChainMap的隱藏坑【推薦】

    在Python中合并字典模塊ChainMap的隱藏坑【推薦】

    在Python中,當我們有兩個字典需要合并的時候,可以使用字典的 update 方法,接下來通過本文給大家介紹在Python中合并字典模塊ChainMap的隱藏坑,感興趣的朋友一起看看吧
    2019-06-06
  • Pytorch?nn.Dropout的用法示例詳解

    Pytorch?nn.Dropout的用法示例詳解

    這篇文章主要介紹了Pytorch?nn.Dropout的用法,本文通過示例代碼介紹的非常詳細,文中補充介紹了torch.nn.dropout和torch.nn.dropout2d的區(qū)別,需要的朋友可以參考下
    2023-04-04
  • 利用python實現(xiàn)微信頭像加紅色數(shù)字功能

    利用python實現(xiàn)微信頭像加紅色數(shù)字功能

    通過Python實現(xiàn)將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數(shù)字,類似于微信未讀信息數(shù)量那種提示效果。下面通過本文給大家分享python實現(xiàn)微信頭像加紅色數(shù)字功能,感興趣的朋友一起看看吧
    2018-03-03
  • django views重定向到帶參數(shù)的url

    django views重定向到帶參數(shù)的url

    這篇文章主要介紹了django views重定向到帶參數(shù)的url,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 淺談keras中的目標函數(shù)和優(yōu)化函數(shù)MSE用法

    淺談keras中的目標函數(shù)和優(yōu)化函數(shù)MSE用法

    這篇文章主要介紹了淺談keras中的目標函數(shù)和優(yōu)化函數(shù)MSE用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 使用Python和Plotly繪制各種類型3D圖形的方法

    使用Python和Plotly繪制各種類型3D圖形的方法

    Python語言擁有豐富的數(shù)據(jù)可視化庫,其中Plotly是一款流行的工具,提供了繪制高質(zhì)量三維圖形的功能,本文將介紹如何使用Python和Plotly來繪制各種類型的3D圖形,并給出代碼實例,需要的朋友可以參考下
    2024-05-05
  • 分享幾道你可能遇到的python面試題

    分享幾道你可能遇到的python面試題

    最近去筆試,在面試過程中遇到了幾個編程題,比較基礎。所以想著總結一下,所以下面這篇文章主要給大家分享了幾道你可能遇到的python面試題,文中給出了詳細的示例代碼供大家參考學習,需要的朋友們下面來一起看看吧。
    2017-07-07

最新評論