Python

【Python/Django】webフレームワークを使う6つのコツ〜最短距離でアプリをつくるために【初心者向け】

とある業界のWeb予約システムをつくることになりまして、

Pythonのweb用フレームワーク『Django(ジャンゴ)』を毎日のように触っています。

その中で得た感覚というか使うコツというのをまとめてみることにしました。

大いに個人的な意見や感覚が入っているので寛大な心でお読みくださいませ。

執筆当時 Djangoのバージョンは2.1です。

Sponsored link

Python フレームワークを使うコツ その1 フレームワークは便利って事を知る

フレームワークというのはざっくりいえば、

よく使う機能をまとめて使いやすくしたもの

かなと思います。

例えば最近だと、

  • ログイン機能・・セキュリティ大変
  • ソーシャルログイン機能・・Facebookアカウントでログインとか
  • API機能・・外部にデータを出すのも大変セキュリティも大変
  • チャット機能・・最近よくみるなぁ
  • HTMLメール送信機能・・ メールはこれからも残るんでしょうね

などいろんなホームページでいろんな機能を見ますが、

これらを1からつくるとなると、途方もない時間・労力がかかります。

ログイン機能だけでも人によっては2〜3ヶ月かかるんじゃないかと思ったり、
せっかくつくってもセキュリティが穴だらけなんてなったら目もあてられません。

でも大丈夫。

よく使う機能が最初から入ってて、セキュリティもしっかり考えられたフレームワークを使う事で、

ものすごい短時間で高品質のWebアプリで作れちゃうというわけです。

簡単なものなら1週間もあればできちゃいます。

アオキ
こりゃ使うっきゃないですな。

Python フレームワークを使うコツ その2 レールに乗ってざっくり構成を把握する

フレームワークというのは大なり小なり、

よく使う機能をまとめて使いやすくしているため、

ある程度フォルダ構成やファイルの名前や役割が決まっています。

あらかじめレールが敷かれているので、そのルールに合わせてつくっていく、という形になります。

慣れてきたらカスタマイズすればいいんですが、最初はとにかくレールにうまく乗る事が大事かと。

『Django(ジャンゴ)』のレールはこんな感じかなと思っています。

『Django(ジャンゴ)』の仕組みはMTVと呼ばれたりします。

  • Model (モデル・・データベースとやりとり)
  • Template (テンプレート・・見た目全般)
  • View (ビュー・・処理全般)

renderとかModelとかFormとかはViewにつながって、Viewがとにかく頑張るので、

Viewは例えるなら舞台をしきる監督のような役割かなと思います。

例えばインターネットで映画チケットの予約をしようと思って、

スマホでホームページを開いたら、

『Django』でいうとTemplate(テンプレート・見た目)が見えている事になります。

次に、気になる映画のページなどのボタンを押すと、

  1. urls.pyというファイルでURLを判断して、
  2. それにあったViewを見にいって、
  3. Viewに書いてある処理をして、
  4. Template(見た目)を表示する

という流れで動くようになっています。

図でいうとピンクの矢印です。

実際に映画の予約をしようとすると、

予約フォームに名前や電話番号を入力すると思います。

予約フォームに名前や電話番号を入力して、「予約する」的なボタンを押した後は、

  1. urls.pyというファイルでURLを判断して、
  2. それにあったViewを見にいって、
  3. Viewに書いてある処理をして(Formに入ってきた情報を保存する)
  4. Template(見た目)を表示する

という流れになります。

これまたピンクの矢印です。

まずはこの流れをなんとなくでいいので把握するといいんじゃないかなと思います。

Sponsored link

Python フレームワークを使うコツ その3 1ページ作って表示してみる

『Django』はフレームワークの特性上、

  1. urls.pyというファイルでURLを判断して、
  2. それにあったViewを見にいって、
  3. Viewに書いてある処理をして、
  4. Template(見た目)を表示する

という流れで表示するようになっているので、

例えば新しいページを1つ増やそうと思ったら、

Template(見た目)のページを1つ増やすだけではダメ

という事になります。

Template(見た目)のページを1つ増やしたら、

  • urls にもページが増えた事を追記して、
  • View にもページが増えた事を追記する

必要があります。

始めは、

フレームワーク初心者
ページ1つつくるのに3つもファイル触るのめんどいわー

ってなってしまうんですが、

しばらく作っていくと、

3つのファイルを触ることにも慣れてきて、

こちらの方が便利という事が体感できてくると思います。

アオキ
それがレール(『Django』のルール)に乗るってことなんでしょうなぁ。

Python フレームワークを使うコツ その4 urls.pyが2つあるので要注意

始めて『Django(ジャンゴ)』を触った時に「えっ?」ってなったのが、

アオキ
なんでurls.pyが2つもあるの・・?

ということでした。

『Django(ジャンゴ)』の構成は、

1つのプロジェクトがあって、その下に個別のアプリがある。

という想定で作られているため、

プロジェクトの中にもurls.pyがあって、
その下の個別アプリにもurls.pyがある(自分でつくる必要あり)

という仕組みになっています。

正直そんなに規模が大きくないなら1つでもいいと思いますが、

そんなもんだとわりきって、

今触っているのが、どっちのurls.pyなのかというのを把握するようにするといいのかなと思います。

Sponsored link

Python フレームワークを使うコツ その5 モデルとフォームをつなげてみる

webアプリをつくろうとすると、多くの場合でフォームが必要になります。

  • 映画の予約
  • 美容室の予約
  • アンケートの回答
  • 口コミの投稿
  • ディズニーランドのチケットの予約

などなど。

1からフォームをつくるとなると、

CSRFやらSQLインジェクションやらいろんなセキュリティ面を考える必要がありますが、

『Django(ジャンゴ)』なら最初からまるっと入っているので、

そのレールに乗っかってつくってみるといいです。

流れとしては、

  1. データベースのテーブルの構成を考えて(予約番号、氏名、住所、年齢、予約日など)
  2. それにそったModelをつくって
  3. Modelを読み込ませたFormをつくって
  4. Formを動かすためのViewをつくって
  5. 最後にTemplateの中に form タグをいる

という流れになるかなと思います。

フレームワーク初心者
フォーム1つつくるのに、4つもファイル触るの?!

なんて最初は思っちゃうんですが、

これも何回かやっていると慣れてくるので、淡々とこなしてみるといいかなと。

Python フレームワークを使うコツ その6 ジャンゴガールズを繰り返す

ざっくりと流れがわかったら、あとはとにかく実践です。

ネットだとやっぱりジャンゴガールズがいいのかなと思うので、

最低3回くらいは繰り返してやってみて、

わかりづらいところはノートにメモなどとってみるといいです。

この図も何かしら参考になれば幸いです。

さいごに

フレームワークはうまくレールに乗るととても早いスピードで開発ができます。

2年かかったプログラムが3ヶ月でできちゃったとかよくある話で、

1からつくるのももちろん尊いし、若いうちはその方がいいと思うんですが、

仕事となるとどうしてもスピード、納期が求められるので、

フレームワークを有効につかえるようになるとなにかと便利かなと思います。

アオキ
さくっと作れるってすごい時代やなぁ

PS. ジャンゴガールズやったあとはぜひ『現場で使えるDjangoの教科書』もおすすめです。

created by Rinker
¥1,728 (2019/05/26 00:22:23時点 Amazon調べ-詳細)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


Sponsored link

関連記事

  1. Python

    【Python】Flaskのチュートリアルがもっとわかるようになるまとめ【初心者向け】

    『Python(パイソン)』をホームページやウェブサイトとして表示させ…

  2. Python

    【Python/Django】Webアプリのテンプレートなら『cookiecutter』がよさげ【簡…

    っとなったとしたら、Pythonの全部入りwebフレームワ…

  3. Python

    スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミン…

    CoderDojo熊本を立ち上げてからというもの、日々お勉強の毎日にな…

  4. Python

    Python(パイソン)でできる事の実例 じゃらんや楽天トラベルからデータをとってゴニョゴニョできち…

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』に参加され…

  5. Python

    【Django】Webアプリのフォルダ構成のアイデア〜違うアプリで同じテーブルを使いたい!

    とある業界の予約システムをつくることになりまして、ログイン周りとラ…

  6. Python

    【Python/Django】mysqlとの接続があまりにあっさりしすぎて拍子抜けした話

    DjangoからPostgresqlがどうしてもwin7だと接続できな…

Sponsored link

最近の記事

Sponsored link
  1. クリエイティブコーディング

    プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して
  2. Laravel

    【Django】【Laravel】【RubyOnRails】を比較してみた【初心…
  3. 検索システム

    新しいホテルを探すサービスをつくってみました【楽天トラベルAPI】【条件付】
  4. 検索システム

    バリアフリーなホテル のページをオープンしました。
  5. MySQL

    検索システムのデータベースの作り方や考え方を8ステップで書き連ねてみる
PAGE TOP