Djangoでアプリ作成〜体重管理アプリ編1〜
こんにちは、こちょすです🔥
今日からDjangoでアプリ作っていきます!
作るのは体重と体脂肪率を記録するアプリ。初めてということでシンプルな作りにします。
要件整理
①体重と体脂肪率を一覧で見れるようにする(一覧機能)
②体重と体脂肪率を日別で登録できるようにする(登録機能)
③体重と体脂肪率を更新・削除できるようにする(更新・削除機能)
データベースでいうところのCRUD(create/read/update/delete)の全ての要素を含む機能を実装しますので、今回のアプリを応用して色々なものが作れるようにという意図があります。
それじゃーさっそく、一覧機能からやっていこーう!🔥
プロジェクトの作成
まずはDjangoプロジェクトを作成します。このDjangoプロジェクトはいろんなアプリをまとめる親みたいなもので、1つのプロジェクトの中で複数のアプリを作ることができます!イメージ的にはこんなかんじ。
Djangoのインストールが終わっている前提で、Djangoプロジェクトを作りたい場所に行って、Console(windowsならコマンドプロンプト、Macならターミナル)から以下のコマンドを打ちます!(「$」はターミナル感出すためなので、それ以外を打ってね!)
$ django-admin startproject project
するとこんな感じでファイルやらフォルダが自動生成されます。
./project/
├── manage.py
└── project
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
アプリケーションの作成
次は上で作ったプロジェクトの中にアプリを作っていきましょう!
名前は正直なんでもいいんですが、今回は「selfrecorder」とします。(ダサくてごめんなさい。皆さんはもっとかっこいい感じの名前つけてください)
まずさっき作ったprojectディレクトリ(=フォルダ)に移動します。
$cd project
つぎに、以下のコマンドを打つことでアプリを作ります。
$python manage.py startapp selfrecord
これでDjangoアプリに必要なフォルダやらファイルが作成されます。自分で手で追加するファイルもありますが、基本はここで作成されるファイルをいじっていく感じです。
作成されるフォルダ構成はこんな感じ。
./project/
├── selfrecord
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── project
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-37.pyc
│ └── settings.cpython-37.pyc
├── settings.py
├── urls.py
└── wsgi.py
初期設定
上で作ったファイルへの修正や、必要なファイルの作成をしていきましょう!🔥
settings.pyの修正
プロジェクト全体として1つ持っている設定ファイル(settings.py)に対して、このアプリを認識させる必要があります。そのためには以下のように修正をしましょう!(黄色の部分が追記箇所です。)
project>urls.pyの修正
次にurls.pyの修正です。DjangoはMTV(モデル・テンプレート・ビュー)という考え方に基づいたフレームワークです。ユーザからの操作をトリガとして処理(ロジック)を行なっているのが、ビューなわけですが、ユーザがアクセスしてきたときに、そのアクセス先URLと、どのビューを呼び出すのかを紐づけるのがこのurls.pyの役割です。イメージ的にはこんな感じ。urls.pyがこのあともう一回出てきたり、templateがそのまま返されてたり(本来はhtmlとして返す)厳密ではありませんが、だいたいイメージ的にはこんな感じです。この辺の考え方はDjangoのMTVだけでなく、Webフレームワークの中では有名なMVCの考え方でも似ているので、ざっくり頭の中でイメージできているとRailsなど他の言語のフレームワークを触る機会があったときにもスッと理解がしやすいかなと思います。
ながなが書いてしまいましたが、修正内容はこんな感じです。
今日はここまでにしておきましょう!
毎日少しずつ、書いていければと思うので、皆さま細く長くお付き合いいただければと思います!よろしくお願いします。
ではでは。また明日も頑張っていきましょうね!
ツイッターもやっているのでフォローお願いします!
この記事が気に入ったらサポートをしてみませんか?