2011-04-14 23 views
1

私は1つのモデルを持っているDjangoで非常に簡単なアプリケーションを作った。要求が来たときに基本的にそのモデルからオブジェクトをフィルタリングし、テンプレートでレンダリングする。それは正常に動作しているようだが、私は私のデータベースのログをチェックするために行ったとき。私は、djangoがリクエストごとに2回接続して、リクエストセッションに関する情報を取得することを発見しました。なぜこれが起こっているのか、誰もが私を助けることができますか?下記のログの例を参照してくださいデータベースに2回接続するdjango

110414 18:28:29  8 Connect [email protected] 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 [email protected] 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 

答えて

0

あなたはおそらくdjangoを使用してメディアファイルを提供していますか?追加の要求を作成し、追加のクエリを作成します。

「セッション」クエリはすべてのリクエストで実行されるため、あなたが思っている以上に多くのリクエストをしている可能性があります。

+0

はいファイルを提供するためにdjangoを使用しています。しかし、私はすばらしいことをしました、私はちょうどデバッグモードがfalseになるようにしました。私はまた、任意のcssまたはjsを提供する他のすべてのタグを削除し、単純なforループを維持してクエリを印刷し、上記と同じ結果を見ています。そのデータベースを2回クエリすると奇妙な部分は、その接続を閉じて再び開きます。 –

+0

あなたはSQLリクエストを追跡するためにdjangoデバッグツールバーを試してみることができます。 –

0

私はまったく同じことを経験しました。私の場合は、それが原因だったのがファビコンの要求だったことが判明しました。 Chromeネットワークコンソールやmanage.pyのアクセスログには表示されませんでした。私は自分のサイトに単にfacicon.icoを追加するだけで解決しました。

また、デバッグツールバーも試しましたが、SQLクエリは表示されませんでした。なぜなら、おそらくビューに関連付けられていないためです。

関連する問題