『Django入門編4: 実用的なDjangoアプリを作ろう (全11回)』
PHP+Laravelの入門講座と同じような構成だな。
メモ
#01:アプリの概要を整理しよう
- ルーティング
ルート | ビュー | 表示ページ |
---|---|---|
(ドメイン名)/lunchmap/ | IndexView.as_view() | 一覧表示 |
(ドメイン名)/lunchmap/<id> | DetailView.as_view() | 詳細画面 |
(ドメイン名)/lunchmap/create | CreateView.as_view() | 新規作成画面 |
(ドメイン名)/lunchmap/<id>/update | UpdateView.as_view() | 更新画面 |
(ドメイン名)/lunchmap/<id>/delete | DeleteView.as_view() | 削除 |
(ドメイン名)/admin/ | admin.site.urls | 管理サイト |
#02:プロジェクトを準備しよう
- プロジェクトを作成する。
$ django-admin startproject myapp - アプリケーションを作成する$ python manage.py startapp lunchmap
- アプリケーションを登録するmyapp/myapp/settings.py
- INSTALLED_APPS = [
'lunchmap.apps.LunchmapConfig',
- INSTALLED_APPS = [
#03:データベースのモデルを作成しよう
- phpMyAdminで、lunchmapdbを作成しておく。
- Laravelのときと被ってしまうからlunchmapdb_djangoとしておこう。
- settings.pyで、データベースを設定
myapp/myapp/settings.py - models.pyを記述
myapp/lunchmap/models.py- class Category(models.Model):
- class Shop(models.Model):
- マイグレーションファイルを作成する$ python manage.py makemigrations lunchmap
- マイグレーションを実行する$ python manage.py migrate
#04:Djangoの管理サイトを設定しよう
- 管理ユーザーをコマンドで登録する
$ python manage.py createsuperuser- 次のURLで、管理サイトにアクセスする
https://localhost:8000/admin
- 次のURLで、管理サイトにアクセスする
- admin.pyにモデルを登録する
myapp/lunchmap/admin.py
#05:お店一覧ページを作ろう
- プロジェクトのurls.pyを記述する
myapp/myapp/urls.py - lunchmapのurls.pyを作成する
myapp/lunchmap/urls.py - views.pyにIndexViewクラスを記述
myapp/lunchmap/views.py- class IndexView(generic.ListView):
- テンプレートを作る
myapp/lunchmap/templates/lunchmap/shop_list.html
#06:共通テンプレートにBootstrapを導入しよう
- 共通テンプレートbase.htmlを作成する
myapp/lunchmap/templates/lunchmap/base.html - お店一覧テンプレートを修正する
myapp/lunchmap/templates/lunchmap/shop_list.html
#07:お店の詳細ページを作ろう
- lunchmapのurls.pyに追記する
myapp/lunchmap/urls.py - views.pyにDetailViewクラスを記述
myapp/lunchmap/views.py- class DetailView(generic.DetailView):
- 詳細ページのテンプレートを作る
myapp/lunchmap/templates/lunchmap/shop_detail.html - お店一覧ページをテーブルにして、詳細ページにリンクする
myapp/lunchmap/templates/lunchmap/shop_list.html
#08:新規と編集のフォームを作ろう
- lunchmapのurls.pyに追記する
myapp/lunchmap/urls.py - views.pyにCreateViewを記述
myapp/lunchmap/views.py- class CreateView(generic.edit.CreateView):
- class UpdateView(generic.edit.UpdateView):
- テンプレートとしてshop_form.htmlを作る
myapp/lunchmap/templates/lunchmap/shop_form.html
#09:投稿フォームの保存機能を作ろう
- 一覧ページから、新規ページにリンク
myapp/lunchmap/templates/lunchmap/shop_list.html - 詳細ページから、更新ページにリンク
myapp/lunchmap/templates/lunchmap/shop_detail.html - 更新できるように、models.pyを修正
myapp/lunchmap/models.py - reverse関数
reverse関数は、ビューの名前から、リダイレクト先のURLを調べる関数。このおかげで、モデルやビューの中でルートを直接記述しなくても済む。
#10:削除ページを作ろう
- lunchmapのurls.pyに追記する
myapp/lunchmap/urls.py - views.pyにDeleteViewクラスを記述
myapp/lunchmap/views.py- class DeleteView(generic.edit.DeleteView):
reverse_lazy関数を使う
- class DeleteView(generic.edit.DeleteView):
- テンプレートとしてshop_confirm_delete.htmlを作る
myapp/lunchmap/templates/lunchmap/shop_confirm_delete.html - 詳細ページから、削除ページにリンク
myapp/lunchmap/templates/lunchmap/shop_detail.html
#11:Googleマップを表示しよう
- shop_detail.htmlに、マップを追加
myapp/lunchmap/templates/lunchmap/shop_detail.html - Google Maps API
- - Google Maps Platform - Geo-location API
https://cloud.google.com/maps-platform/ - - Developer Guide | Maps Embed API | Google Developers
https://developers.google.com/maps/documentation/embed/guide
- - Google Maps Platform - Geo-location API
- 参考になるWebページ
- Google Maps Embed APIの使い方まとめ!カスタム地図を埋め込もう
https://syncer.jp/google-maps-embed-api-matome
認定証
このレッスンでは、チャプター10を終えたところで、認定証が授与される。
チャプター11のGoogleマップの表示はおまけってことなんだな。
※コメント投稿者のブログIDはブログ作成者のみに通知されます