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

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

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

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

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

然后在settings.py文件中設(shè)置DEBUG = True。
將“ debug_toolbar”添加到INSTALLED_APPS設(shè)置中。

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

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

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

文章轉(zhuǎn)載:Python運(yùn)維技術(shù) (版權(quán)歸原作者所有,侵刪)