0

私はdjangoの初心者です。本番環境にデプロイされたすべてのdjangoプロジェクトは、apacheなどのWebサーバーを介してメディアファイル(アップロード)を提供する必要があることを読みました。私の質問は-それはなぜですか?

PHPフレームワークはたくさんあります-例えば。symfony1と2-ルールに従わない。Webサーバーを介してアプリにアクセスできるようにしたら、デプロイする環境に応じて何も変更する必要はありません。Webサーバー上に構成されているだけで、DOCUMENT_ROOTこのディレクトリ内のどこかにアップロードディレクトリがあります-それだけです。適切なフレームワークアーキテクチャとドキュメントルートのおかげで、PHPやSQLファイルなどに誰もアクセスしないようにすることができます。なぜdjangoが違うのですか?

編集:さらに、異なる環境(たとえば、これ)に対して異なるコードを準備することは、まったく同じコードを使用して異なる環境にプロジェクトをデプロイすることはできないため、非常に悪いアプローチです(リンクのコードはデバッグ環境でのみ意味があります) 。

4

1 に答える 1

4

PHPを使用すると、コードは静的ファイルやメディアファイルとともにWebサーバーのパブリックディレクトリから提供されるためです。したがって、これらの静的ファイルのいずれかを要求すると、Webサーバーは途中でPHPコードを実行せずにそれらを直接提供します。

Djangoでは、コードは個別に実行され、すべてのリクエストはDjangoのPythonコードによって処理されます。これは静的ファイルを提供するには非効率的です。ApacheやNginxなどのWebサーバーがPythonコードを経由せずに直接それらを提供できるようにする方が効率的です。

于 2013-03-21T14:26:28.850 に答える