<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為Django查詢生成原始SQL查詢的3種方法

          共 1971字,需瀏覽 4分鐘

           ·

          2021-06-02 02:27

          我們使用Django ORM使查詢數(shù)據(jù)庫變得非常容易,但是如果我們知道幕后發(fā)生了什么或?qū)δ承〥jango查詢執(zhí)行了什么SQL查詢,對我們提升查詢性能幫助會(huì)非常的大,以下是一些有用的方法,能幫助我們了解幕后的SQL語句是什么。

          1.使用queryset的查詢屬性
          這是在Django中查找原始SQL查詢的最簡單方法。

          >>>queryset = Organization.objects.all()>>>print(queryset.query) Output:SELECT "app_organization"."id", "app_organization"."name", "app_organization"."created","app_organization"."updated"" FROM "app_organization">>>str(queryset.query)Output:'SELECT "app_organization"."id", "app_organization"."name", "app_organization"."created", "app_organization"."updated" FROM "app_organization"'


          2.Django  connection

            這種方法比前一種方法提供的信息更多,因?yàn)槲覀兛梢哉业皆糞QL語句以及執(zhí)行該語句所需的時(shí)間(以秒為單位)。
          需要確保在settings.py文件中將此設(shè)置為DEBUG = True。

          >>>from django.db import connection,reset_queries>>>Organization.objects.all()>>>connection.queriesOutput:[{'sql': 'SELECT "app_organization"."id", "app_organization"."name", "app_organization"."created", "app_organization"."updated" FROM "app_organization" LIMIT 21','time': '0.001'}]>>>reset_queries()Output:[]

          注意:reset_queries()可隨時(shí)用于手動(dòng)清除查詢列表。


          3.Django調(diào)試工具欄
               Django Debug Toolbar是一組可配置的面板,顯示有關(guān)當(dāng)前請求/響應(yīng)的各種調(diào)試信息,單擊該工具時(shí),將顯示有關(guān)面板內(nèi)容的更多詳細(xì)信息,包括所有SQL查詢,如圖:


          要在django項(xiàng)目中設(shè)置此工具欄,首先需要安裝:

          pip install django-debug-toolbar

          然后在settings.py文件中設(shè)置DEBUG = True。

          將“ debug_toolbar”添加到INSTALLED_APPS設(shè)置中。

          INSTALLED_APPS = [ 'debug_toolbar',]

          將調(diào)試工具欄的URL添加到項(xiàng)目的URLconf中。

          import debug_toolbarfrom django.conf import settingsfrom django.urls import include, pathurlpatterns = [ ... path('__debug__/', include(debug_toolbar.urls)),]

          調(diào)試工具欄主要在中間件中實(shí)現(xiàn),應(yīng)盡可能早地放在列表中。在settings.py模塊中啟用它,如下所示:

          MIDDLEWARE = [# ... 'debug_toolbar.middleware.DebugToolbarMiddleware',# ...]

          限制訪問的IP地址,在INTERNAL_IPS設(shè)置的IP訪問,才會(huì)顯示“調(diào)試工具欄”。例如:對于本地開發(fā),必須在INTERNAL_IPS中添加“ 127.0.0.1”。

          INTERNAL_IPS = [# ... '127.0.0.1',# ...]

          文章轉(zhuǎn)載:Python運(yùn)維技術(shù)

          (版權(quán)歸原作者所有,侵刪)


          點(diǎn)擊下方“閱讀原文”查看更多

          瀏覽 85
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  椎名空一区二区三区观看 | 暗呦网一区二区三区 | 国产无遮挡又黄又爽又色学生软件 | 亚洲欧美三级在线 | 欧美三区|