2016-03-19 22 views
2

私は初心者のDjango開発者です。この質問が意味をなさない場合は、私を許してください。なぜ私たちはDjangoの設定でWSGI_APPLICATION変数を提供する必要がありますか

ROOT_URLCONFとその他の設定変数とともに、django設定でWSGI_APPLICATIONという変数を提供しています。設定ファイルのパスをwsgi.pyファイルにも設定しています。

import os 
import django.core.wsgi import get_wsgi_application 
os.environ.setdefault("DJANGO_SETTINGSS_MODULE", "<settings_file_path>") 
application = get_wsgi_application() 

それでは、

設定ファイル内のwsgiファイル内の設定ファイルのパスとwsgiファイルのパスを意味します。なぜ私たちはこれをしなければならないのですか?

私の理解によれば、wsgiファイルの設定ファイルのパスは十分なはずですが、djangoの設定で余分な変数は必要ありませんか?

最終的にwsgiファイルはdjangoアプリケーションの出発点です。

私が間違っているところで私を修正してください。

答えて

1

最終的に、wsgiファイルはdjangoアプリケーションの出発点です。

必ずしもそうではありません。 documentation for WSGI_APPLICATIONは、この設定は何のためにあるのかを説明します。

Djangoの組み込みのサーバ(例えばrunserver)を使用するWSGIアプリケーションオブジェクトの完全なPythonパス。

設定したサーバーは、WSGIファイルの場所を知っている必要があります。外部サーバーを使用している場合、独自の設定が表示されます。 Djangoの開発サーバーを使用している場合は、Djangoの設定をチェックします。あなたが気づいた循環性は、Djangoアプリケーションがさまざまな方法で起動できるという事実の結果です。

+0

「Djangoアプリケーションは、さまざまな方法で起動できます。 – user5319825

+1

@ user5319825:異なるWebサーバーはすべて、WSGIを構成してDjangoを開始する独自の方法を持っています。 'runserver'のやり方は' WSGI_APPLICATION'の設定を見ているのに対し、mod_wsgiのApacheは[独自の設定をしています](https://docs.djangoproject.com/en/dev/howto/deployment/)です。 wsgi/modwsgi /)。 HTTPリクエストを処理する必要がない場合は、WSGIなしでDjangoアプリケーションを使用することも、サーバーを使用することもできます。 –

+0

"HTTPリクエストを提供する必要がない場合は、WSGIまたはサーバーなしでDjangoアプリケーションを使用することもできます。 – user5319825

0

IMHO、wsgi.pyは、ApacheなどのWASのために、あなたのdjangoプロジェクトがどこにあるのかを示す役割を果たします。

したがって、wsgi.pyはdjangoの外で起動するため、djangoの設定が必要です。

関連する問題