Django 作業ディレクトリ構造のベストプラクティス
Django は、フルスタック Web アプリケーションの作成に使用できる素晴らしい Python ベースのオープンソース Web 開発フレームワークです。これはフレームワークであるため、最初はプロジェクト内に多くのファイルを期待できます。最初は初心者には圧倒されるかもしれませんが、心配することは何もありません。それはすべて時間とともにシンプルに見えます。
Web アプリケーションには、開発と本番の 2つの側面があります。開発側は、本番側と比較して設定が異なります。Django アプリケーションには、static
、media
、templates
などの多くのフォルダーがあります。Django はしばらく前から存在しているため、このプロジェクトをより成功させるには、Django の作業ディレクトリ構造のベストプラクティスを知る必要があります。範囲。これらの方法については、この記事で説明しますので、読んでください。
Django ディレクトリ構造
Django プロジェクトのディレクトリ構造は次のようになります。
Project Folder/
.gitignore
LICENSE.rst or LICENSE.md
Documentation/
README.rst or README.md
environment
requirements.txt
MyProject/
manage.py
media/
MyProject/
__init__.py
settings/
__init__.py
base.py
development.py
production.py
.env
urls.py
wsgi.py
AppOne/
static/
AppOne/
templates/
AppOne/
urls.py
views.py
models.py
AppTwo/
static/
AppTwo/
templates/
AppTwo/
urls.py
views.py
models.py
AppThree/
static/
AppThree/
templates/
AppThree/
urls.py
views.py
models.py
Django ルートフォルダ
ルートフォルダ Project Folder
には、Django プロジェクトと、license
、README
、environment
、requirements.txt
、.gitignore
、Documentation or Docs
など、プロジェクトに関連するすべてのファイルが格納されています。
Django プロジェクトフォルダー
Django プロジェクト MyProject
内には、manage.py
ファイル、media
フォルダー、settings.py
ファイルを含む MyProject
フォルダー、および Django アプリケーションがあります。
Django プロジェクト設定フォルダー
デフォルトでは、Django は単一の settings.py
ファイルと、urls.py
、wsgi.py
などの他の重要なファイルを提供します。settings.py
ファイルには、本番環境と開発。したがって、より重要なプロジェクトでは長さが長くなる可能性があります。
したがって、設定をそれぞれのファイルに分割することは素晴らしいアイデアです。base.py
ファイルには、開発と本番の両方に適用される設定が含まれています。development.py
ファイルには、開発に適用可能なすべての設定が含まれ、production.py
にはすべての本番設定が含まれています。
開発側と本番側では、データベース設定、パスワード検証設定、電子メール設定、支払い設定、API キー、およびその他の構成を変えることができます。
Python Decouple
を使用して機密データを保存している場合は、.env
ファイルもこのフォルダーにある必要があります。
Django アプリケーション
すべての Django アプリケーションには、static
フォルダーと templates
フォルダーがあります。これらのフォルダー内には、アプリケーションの名前で別のフォルダーがあります。これらのフォルダー内に、すべての静的ファイルとテンプレートを配置します。
このアプローチにより、同じ名前の複数のファイルを作成できます。たとえば、各アプリケーションに index.html
ファイルと style.css
がある場合、それらにアクセスしやすくなります。
----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}
---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}