django дважды подключается к базе данных - PullRequest
1 голос
/ 14 апреля 2011

Я сделал очень простое приложение в 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

Ответы [ 2 ]

0 голосов
/ 23 ноября 2012

Я испытал то же самое.В моем случае выяснилось, что причиной был запрос на favicon.Он не отображался ни в сетевой консоли Chrome, ни в журнале доступа от manage.py.Я решил это, просто добавив facicon.ico для своего сайта.

Я также попробовал панель инструментов отладки, но SQL-запросы там не появлялись, вероятно, потому что они не были связаны с представлением.

0 голосов
/ 14 апреля 2011

Вы случайно не обслуживаете свои медиафайлы с помощью django? это создаст дополнительные запросы и, следовательно, дополнительный запрос.

Запрос "сеанса" выполняется для каждого запроса, поэтому я думаю, что вы можете делать больше запросов, чем вы думаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...