Cookiecutter Djangoで作成されるファイルを調べてみた

Cookiecutter Djangoは素早く本番環境に対応したプロジェクトを作成できるフレームワークです。

非常に便利なのですが、初めて使った時は、利用用途が不明なファイルがあったり、Djangoのプロジェクトの構成を調べる必要がありました。

今回は、Cookiecutter Djangoで作成されるプロジェクトについて簡潔に解説します。

なお、インストール方法や、利用方法はCookiecutter Djangoのインストール方法、使い方、メリット・デメリットで紹介しています。

使用バージョン:3.1.13

ファイル構成

ディレクトリ構成

Cookiecutter Djangoを実行すると複数の設問に答える必要がありますが、今回は全てデフォルト値を使用しました。このときに作成されるフォルダ構成は上の画像の様になります。

以降ではこれらのフォルダやファイルの役割を簡潔に解説します。

Django関連ファイル

webサイトの作成に関連するファイルは以下のとおりです。

config

設定ファイルや、urls.py、wsgi.pyが入っているフォルダです。

settings.pyはローカル用、テスト用、プロダクション用に分割されています。

manage.py

Djangoでプロジェクトを作成したときに作成されるファイルです。

my_awesome_project

アプリの本体が格納されたフォルダです。

Cookiecutter Djangoのproject_slugの設問の回答がこのフォルダ名に使われます。

startappコマンドで作成したアプリはこのフォルダ内に入れて管理する方が良いと思います。このフォルダ内のusersフォルダもDjangoアプリの一つです。

テンプレートはアプリ毎にtemplatesディレクトリを作成するのではなく、<project_slug>/templates/<app_name>/

に格納している様です。

例えばUserアプリは、my_awesome_project/users/templates/users/ に格納するのではなく、my_awesome_project/templates/users/ に格納しています。

pytest.ini

pytestの設定ファイルです。

requirements

開発に必要なpythonパッケージを管理するフォルダです。

ローカル用、プロダクション用に分けられています。

locale

多言語化設定用のフォルダです。

docs

ドキュメント作成関連のフォルダです。

.readthedocs.yml

ドキュメント用の設定ファイルです。

git関連

.gitattributes

gitの属性を管理するファイルです。ファイルには

* text=auto

のみ書いてありますが、これは”全てのテキストファイルの改行コードを環境に応じて自動変換する”という意味です。

私はCookiecutter Djangoで初めて知りました。windows, mac, linuxなど複数のosで開発する場合はあると便利かもしれません。

.gitignore

git(バージョン管理システム)から除外するファイルやディレクトリを記載するためのファイルです。

既にDjango用に記述されているため編集する機会は少ないと思います。

.pre-commit-config.yaml

pre-commitというコードの管理・メンテナンスすることができるフレームワークのための設定ファイルです。

pre-commitを使うとcommit毎にフックを実行して、余分な空白の削除や、コーディングスタイルのチェックなどを行い、問題があれば指摘します。

些細なコーディングミスに気付けるので、複数人の開発でコードレビューを実施している場合は利用する価値があるかもしれません。

その他

.editorconfig

複数の開発者が様々なエディターやIDEを使っていても一貫したコーディングスタイルを維持するためのファイルです。

利用するエディターやIDEによってはプラグインを導入する必要があります。

.pylintrc

.pylintrcはPylintというPythonコードのエラー チェックツール用の設定ファイルです。

setup.cfg

setup.cfgはPythonパッケージを作成する時などに使われるファイルです。

Cookiecutter Djangoが出力するファイルには、pre-commitで使うコーディングスタイル用の設定や、カバレッジ用の設定が書かれています。

CONTRIBUTORS.txt

製作者の名前を書いたファイルです。

LICENSE

ライセンスファイルです。

README.rst

主にプロジェクトの概要を説明するためのファイルです。githubではリポジトリページの下部に表示されます。

utility

サーバーの初期設定をするためのスクリプトだと思います。

OSに必要なソフトウェアをインストールするスクリプトと、Pythonのモジュールをインストールするスクリプトがあります。

install_os_dependencies.shファイルは最初にOSのディストリビューションのバージョンを確認し、その結果に応じて、aptファイルを使い分けています。

最後に

Cookiecutter Djangoは幅広いプロジェクトの作成に対応しており、人気の高いフレームワークです。そのため私が知らなかったツールの設定ファイルもありました。

Cookiecutter Djangoで生成されたファイルを全て使う必要はなく、不要なファイルは潔く削除した方が管理しやすいと思いました。

Cookiecutter Djangoの良い点を取り入れて、自身のプロジェクト作成・管理に役立てましょう!

スポンサーリンク
スポンサーリンク