nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | 第92回 #pyhack にてDjango投票アプリチュートリアルを進めました

はじめに

いつも心は虹色に! nikkieです。
定期的に参加している #pyhack で、Django公式ドキュメントのチュートリアル(投票アプリ)に取り組んできました。

勉強会の概要

(第92回)Python mini Hack-a-thon - connpass

スプリントのゆるい版みたいな感じで各自自分でやりたいことを持ってきて、勝手に開発を進めています。参加費は無料です。 初めての方も常連さんもぜひご参加ください。

pyhackのイメージは「猛者の集まるもくもく会」です。
Pythonの経験豊富な方ばかりで、聞こえてくる会話に耳を傾けていると学びがあります。

取り組んだこと

朝の時点での目標は「Django公式ドキュメントのチュートリアル(その1〜その7)を通してやる」でした。
はじめての Django アプリ作成、その 1 | Django documentation | Django から始まる7回構成のチュートリアルです。
1日でその1〜その4まで進めることができました。
なお、私のDjangoレベルは「Django Girls Tutorial修了」です。

作った投票アプリはこんな感じです。

  • 質問(Question)の一覧画面
    f:id:nikkie-ftnext:20180929170927p:plain:w400
  • 質問には選択肢(Choice)が結びついています。質問詳細画面で確認し、選択肢に投票できます f:id:nikkie-ftnext:20180929170938p:plain:w400
  • 投票結果の表示画面
    f:id:nikkie-ftnext:20180929170948p:plain:w400

感想

Djangoがはじめての人には、投票アプリチュートリアルよりもDjango Girls Tutorialがオススメ」という意見をよく目にするのですが、そのとおりだと感じました。

逆の見方をすると、Django Girls Tutorialを終えた後に取り組むと、深いところが説明されているために「こういうことだったのか!」という気づきが多々ある内容だと思います。
Django Girls Tutorialは初めてプログラミングをする方が対象者なので突っ込んだ説明ができないのでしょう。 投票アプリチュートリアルはプログラミング経験者向けに説明がされています。(例えば、mysite/urls.pyとpolls/urls.pyの違い、ビューはHttpResponseか例外を返す、など)

投票アプリチュートリアルでは、リスト内包表記(その3の質問一覧ビュー)や、try ... except ... else ... (その4の投票機能ビュー)といった文法を説明なく使っています。
このあたりはわかっている(または自力で調べられる)方が対象なのでしょう。
Django Girls Tutorialからスムーズに接続するには一工夫必要そうです。

チュートリアルのポイント

気づきを記事に盛り込んでいたら長くなってきたので、気づきは別の記事としてアウトプットします。

  • その1:プロジェクトとアプリケーション作成
    • プロジェクトとアプリケーションの違い、mysite/urls.py と polls/urls.py の違いについて理解が深まった
  • その2:QuestionとChoice、2つのモデルを作成(インタラクティブシェルでORMをみっちり練習)
  • その3:ビューとテンプレート
    • ビューはHttpResponseなるものが肝。これはDjango Girls Tutorialでは意識してこなかった。
  • その4:汎用ビューに書き直し
    • その3までに作成したビューのコードをほとんど書き直した。polls/views.pyのメソッド定義がなくなり、コードが削減されたのは衝撃。「Djangoにこんなの用意されていたのか!」

今回手を動かして、Django Girls Tutorialの知識が補完されたと感じています。
10/6にワークショップのコーチで活かしてみます。

他の方の取り組みから

感想

毎回言っている気がしますが、非常に楽しい時間でした。
今回懇親会は泣く泣く諦めたので、次回リベンジ狙います。
何人かの方には来週のPyLadiesのパーティー(LT会)でお会いできそうで楽しみです^ ^
1日ありがとうございました!