簡體   English   中英

Django兩次連接到數據庫

[英]django connecting twice to database

我在Django中制作了一個非常簡單的應用程序,其中有一個模型,當請求到來時,我基本上會從該模型中過濾對象,然后將其呈現在模板中。 看來工作正常,但是當我去檢查數據庫日志時。 我發現django在每個請求上連接兩次以檢索有關請求會話的信息。 任何人都可以幫助我了解為什么會這樣嗎? 請參閱下面的示例日志

110414 18:28:29     8 Connect   root@localhost on project1_dev
            8 Query SET NAMES utf8
            8 Query set autocommit=0
            8 Query SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_date` FROM `django_session` WHERE (`django_session`.`session_key` = '7af6952f847471091a83ee9382bb858d'  AND `django_session`.`expire_date` > '2011-04-14 10:28:29' )
            8 Query SELECT `category_main`.`id`, `category_main`.`slug`, `category_main`.`is_active`, `category_main`.`site_id`, `django_site`.`id`, `django_site`.`domain`, `django_site`.`name` FROM `category_main` INNER JOIN `category_main_i18n` ON (`category_main`.`id` = `category_main_i18n`.`main_id`) INNER JOIN `django_site` ON (`category_main`.`site_id` = `django_site`.`id`) WHERE (`category_main_i18n`.`language` = 'en'  AND `category_main`.`is_active` = 1 )
            8 Quit  
            9 Connect   root@localhost on project1_dev
            9 Query SET NAMES utf8
            9 Query set autocommit=0
            9 Query SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_date` FROM `django_session` WHERE (`django_session`.`session_key` = '7af6952f847471091a83ee9382bb858d'  AND `django_session`.`expire_date` > '2011-04-14 10:28:29' )
            9 Quit

我經歷了完全相同的事情。 在我的情況下,原來是對favicon的請求才是原因。 它沒有顯示在Chrome網絡控制台中,也沒有顯示在manage.py的訪問日志中。 我通過為我的站點添加一個facicon.ico解決了這一問題。

我也嘗試了調試工具欄,但是SQL查詢沒有出現在那兒,可能是因為它們與視圖沒有關聯。

您是否有機會使用django提供媒體文件? 這將創建其他請求,從而創建其他查詢。

對每個請求都執行“會話”查詢,這就是為什么我認為您執行的請求可能比您想象的要多的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM