flaskを使用してプロジェクトは手動だと手間なので
テンプレートの使い方を調べてみました。
flask作成の手間
Reactのようにコマンド一つで一通り作成する機能がないので
下記の構成も手動かコピーで作成する必要がflaskではあります
そこで一括作成できるcookiecutterについて解説します
flask_todo_app/
│── app.py (Flaskアプリのメインファイル)
│── templates/
│ ├── index.html (タスク一覧のページ)
│ ├── add.html (タスク追加ページ)
└── static/
└── style.css (CSSファイル)
cookiecutterの使い方
インストール
pip install cookiecutter
テンプレート作成
flask用のテンプレートがあるので下記のコマンドでいただけます。
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask
聞かれる内容
基本的にデフォルト値が用意されてるのでそのままenterで大丈夫ですが
project_nameとapp_nameは入力の推奨がされます。
[1/10] full_name ():
[2/10] email ():
[3/10] github_username ():
[4/10] project_name (): flask-test
[5/10] app_name ():
[6/10] project_short_description ():
[7/10] use_pipenv ():
[8/10] python_version ():
[9/10] node_version ():
[10/10] use_heroku ():
詳細
⓵full_name: あなたのフルネームを入力します。これはプロジェクトの作者情報として、README.mdやライセンスファイルなどに記載されることがあります。
⓶email: メールアドレスを入力します。同様に、開発者情報としてプロジェクトの文書に含まれることがあります。
⓷github_username: GitHubのユーザー名を指定します。プロジェクトのリポジトリにリンクを追加する際などに利用される場合があります。
⓸project_name: プロジェクトの名前を入力します(例: flask-test)。これはフォルダ名やいくつかのファイル名に使用されることがあり、プロジェクト全体のタイトルとして機能します。
⓹app_name: Flaskアプリケーションの内部で使用される名前を指定します。たとえば、Pythonのモジュール名として使われます。
⓺project_short_description: プロジェクトの短い説明文を入力します。この説明は README.md に自動的に挿入されることが多いです。
⓻use_pipenv: pipenv(Pythonの依存関係管理ツール)を使用するかどうかを尋ねています。pipenv を使うと、環境設定や依存関係の管理が便利になります。
⓼python_version: このプロジェクトで使用するPythonのバージョンを指定します(例: 3.10)。これは仮想環境や依存関係の設定で利用されることがあります。
⓽node_version: Node.jsを使う場合、そのバージョンを指定します(例: 16)。フロントエンド開発を含む場合に役立ちますが、Flaskだけの場合はスキップ可能です。
⓾use_heroku: Herokuにデプロイするかどうかを選択します。yesを選ぶと、Heroku用の設定ファイルが自動で生成されることがあります。
作成完了
これで一通りの作成が完了です
ただ肝心のフォルダがapp_nameと同名であるのでそちらに移動してください
他のファイルはこのような構成のようです
他ファイルの構成について
⓵app/ Flaskアプリケーションのメイン部分です。この中には__init__.pyやroutes.pyなど、アプリのロジックや設定に関するファイルが含まれます。
⓶tests/ プロジェクトのテストコードを格納するフォルダです。アプリケーションの品質を保つため、ユニットテストや統合テストをここに記述します。
⓷config.py アプリケーションの設定ファイルです。環境ごとの設定(開発用、テスト用、本番用など)を切り替える仕組みが含まれることが一般的です。
⓸requirements.txt プロジェクトで必要なPythonパッケージがリストアップされています。このファイルを使って依存関係をインストールします(例: pip install -r requirements.txt)。
⓹README.md プロジェクトの概要や設定方法、使用方法を記載したドキュメントです。特にGitHubにホスティングする場合、最初に目にするファイルとなります。
⓺LICENSE プロジェクトに適用されるライセンスを明記するファイルです。テンプレート生成時に選択されたライセンスがここに記述されます。
⓻shell_scripts/ シェルスクリプトが配置されているフォルダです。よく使うコマンドやデプロイ作業を自動化するためのスクリプトが格納されている場合があります。例えば、データベースの初期化やサーバの起動など。
⓼.github/ GitHubに関連する設定ファイル(たとえばGitHub Actionsのワークフローファイル)が含まれるフォルダです。自動テストやCI/CDパイプラインを構築するために使用されます。
⓽run.py(またはmanage.py) アプリケーションの起動用スクリプトです。python run.py のようにしてアプリを起動します。