LoginSignup
0
0

More than 1 year has passed since last update.

サーバへのデプロイを考慮したDjangoフォルダ構成

Last updated at Posted at 2022-02-26

前提・やりたいこと

  • DjangoでWebアプリを作成したけれど、ローカル環境で動かすことを前提としたフォルダ構成になっている。
  • サーバへデプロイすることを考えたフォルダ構成にする。

やったこと

1. プロジェクトフォルダ名を「config」に変更
プロジェクトは設定系のファイルしか入っておらず、それを明示したフォルダ名のほうが分かりやすいと考えたため。

2. settings.pyを分割
ローカル環境と本番環境で設定内容が異なるところがあるため、settings.pyをローカル・本番共通、ローカルだけに適用する設定、本番にだけ適用する設定、の3ファイルに分割。

3. 環境変数を.envファイルに記載(django-environを使用)
本番環境用のsettings.pyにはDB接続情報などを記載する必要があるが、直接settings.pyに書くとgithubにコミットする際に一緒に公開されてしまうので、.envファイルに記載してgithubには公開しないように設定。

4. requirements.txtをローカル用と本番用に分割
インストールするパッケージが、ローカルと本番で異なっているため分離。

1.png
※ 変更点以外のフォルダ・ファイルは省略しています。

完成

完成したフォルダ構成と実際のコードを載せておきます。

GitHub : フォルダ構成を修正したアプリのコード(todoリストアプリ)

デプロイ用のフォルダ構成
django-want2study/
 ├ config/
 │  └ settings/
 │    └ base.py
 │    └ development.py
 │    └ production.py
 ├ want2studyApp/
 ├ templates/
 ├ venv/
 ├ .gitignore
 ├ db.sqlite3
 ├ requirements/
 │   └ base.txt
 │   └ production.txt
 ├ manage.py
 └ .env

まとめ

ローカルで動かすことだけを考えただけのフォルダ構成だと、やっぱりいろいろ足りないなあと思いました。まだデプロイ自体はできていないので、デプロイ結果によってはもしかしたら少し修正したりするかもしれませんが、とりあえずこのフォルダ構成で行ってみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0