- Djangoを始めてみた方
- Django Girls Tutorialや投票アプリチュートリアルを最後までやってみた方
- Django Girls Tutorialや投票アプリチュートリアルと自分の作りたいアプリとの間にギャップを感じている方
別途リポジトリを用意。ソースは追えるように (ソースコードを貼るだけでもいいので、チュートリアル化もしたい)
- はじめに(5分)
- Django Girls Tutorial クイックツアー(10分)
- ユーザまわりを実装(10分)
- この機能、どう作る?(10分)
- まとめ(5分)
- 質疑(5分)
- 自己紹介
- 問題意識の共有(なぜこのトークをしようと思ったか)
- 実務で使うDjangoのコードはチュートリアルとのギャップを感じさせる
- 複数のアプリからなるプロジェクト
- 「settings.pyどこ?」(チュートリアルと全然違う)
- 「実務レベル」を定義:
- 作りたいアプリが作れる(個人開発できる)
- 実務でDjangoを使った経験はない
- トークを聞いたあとの姿
- チュートリアルで扱っていない機能をDjangoで実現し用途思ったときに調べ方が浮かぶ
- GitHubにあるDjangoのコードが読める
- ギャップ(チュートリアルで説明が薄いDjangoの機能)が可視化される(→埋める情報発信をしようという方が出てきたら感無量)
- 出発点を合わせるためのパート
- 投票アプリチュートリアルなどの知見を取り入れながらDjango Girls Blogを再構築
django-admin startproject config
でプロジェクト作成- URLの名前空間、など
- Extensionsのログインまで進める(コメントはスキップ)
- ここまでで作れるアプリと一般のWebアプリの間のギャップ:ユーザ
- 次へ進むためにsettings.pyを分割する
読者としてログインできる機能を追加する
- ユーザ登録、パスワード変更、パスワードリセット、全て用意されている(
django.contrib.auth.views
) - 前提知識:クラスベースビュー
- post_newかpost_editをクラスベースビューで書き直す
- クラスベース汎用ビューの紹介(一連の処理が用意されている。必要に応じて上書きして使う)
- ユーザ登録する
- Bootstrap4のクラスを当てるためにforms.pyで継承
- パスワード変更、リセットは薄く説明
- ユーザの認証(Emailでログインしたい)
- 2018 c-bataさんトークを参考に
- 権限の設定(ユーザが記事を書けてしまうので)
- グループを割り当てて見せなくする
Webアプリでよく見るが、Djangoのチュートリアルでは扱われていない機能の実現の仕方を紹介
- いいね機能(ユーザごとのブックマーク)
- ManyToManyリレーションシップ(記事のカテゴリ)
- 一覧画面のページネーション
- 一覧画面の検索(カスタムタグ、カスタムフィルタ)
- 画像の扱い(MEDIA_ROOTなど)
(全ては扱えなさそうなので、チュートリアルとのギャップが大きい機能から取り上げる)
- 扱ったトピック(=ギャップ)を振り返り
- フォルダ構造
- ユーザ
- クラスベースビュー
- etc
- このトークでもDjangoは網羅できない→トーク準備プロセスをメタにとらえる
- Djangoを使うための情報源(どう調べたかの共有)
- 公式ドキュメントの中を検索
- Djangoの情報発信ブログ
- 各種書籍が出るのでギャップは埋まりそう
- テスト
- jQuery
- PythonAnywhereやHeroku以外へのデプロイ
- Docker