【勉強日記】簡単なwebアプリを作ってみよう②【第26回】

webアプリ

はじめに

今回は、webアプリを製作するうえで便利な「フレームワーク」について、少し詳細に解説していきます。今回使用するフレームワークは「Django」です。

作成するうえでの具体的なプログラムの書き方等はここではメインとせず、まずは連携で成り立っている「Django」の各部門のはたらきを見ていくところから解説します。

もくじ

  • はじめに
  • おさらい フレームワークとは何か?
  • 「Django」における各部門のはたらき
    • View(ビュー) …各部門に指示する「Django」の司令塔
    • model(モデル) …データを管理する倉庫の管理役
    • template(テンプレート) …データをきれいに表示させるデザイナー
    • おまけ 「Django」で使えるデータベース・・・データ保存の倉庫
  • 「Django」にはこんな機能もある
    • urls(ルーティング) …どの機能に繋げるかの窓口役
    • form(フォーム) …入力フォームを簡単に作成する
  • 実際に機能を作るにはどのように書いていく?・・・新規作成の場合
  • まとめ

おさらい フレームワークとは何か?

フレームワークとは、webアプリ開発のためのひな型を提供してくれるアプリのことです。

アプリ内データ閲覧や新規作成、保存などの機能を効率的に作成するために、さまざまな部門が連携するようになっています。前回は「Django」の全体像とその関係について説明しましたが、今回は「Django」の各部門のはたらきについて述べていきます。

「Django」における各部門のはたらき

前回、フレームワークは連携によって成り立っていると説明しました。互いに連絡を取り合ったり指示しているように見えますが、実際に各部門は何を担当しているのでしょうか?

view(ビュー) ・・・各部門に指示する「Django」の司令塔

まずはview(ビュー)について解説します。viewは「Django」の司令塔のようなイメージで、主に

  • データの保存をmodelに依頼する
  • html(画面にデータを表示するための記述)をtemplateに依頼
  • 画面遷移先の判断をする

などの機能を司っています。そのため、アプリのメインとなる処理はほぼ、このviewというファイルに書き込んでいくことになります。

「関数ベース」と「クラスベース」

Djangoはアプリケーションですが、今回python内で使用するため、これまでタイピングゲームやRPGゲームを作成したときのように関数・クラスどちらをベースにしても処理を書いていくことができます。Djangoには、クラスを継承したDjango独自のクラスやその中で使える便利なメソッドがたくさん存在しているため、今回はクラスベースで記述を進めていきます。

model(モデル) ・・・データを管理する倉庫の管理役

私たちが入力したデータを保存したり、保存していたデータを参照するさいには、このmodelが働いてくれます。データの管理に関連すると聞くと、「このmodelがデータの保存先で、倉庫(データベース)なの?」と思うかもしれませんが、実際にはmodelデータの倉庫ではなく、倉庫の管理役に近いです。

倉庫(データベース)は少し頑固で、「このようなデータを取り出してください」などの指示をするときには「SQL」という言語を使わなければいけません。しかし、modelは私たちがSQLを使わなくても代わりに指示を出してくれます。

☆modelにはどんな記述をする?

アプリの司令塔には各部門への指示となるメインの処理を書いていきますが、modelには、データを保存するさいの棚の型のようなものを記載します。例えば、データに日付の欄があれば、日付のみを入れられるような棚をつくるといったイメージです。

データベース ・・・ 入力したデータが入っている倉庫

データべ―スとは、厳密にいうとDjangoの外側にあるものなので、ここでは簡単に説明します。データベースはDjangoというアプリの中の一部ではなく、外部のサーバーです。データベースにもさまざまな種類があり、SQLite3やPostgreSQL・・・などがあります。

これらを特に設定しない場合は、Djangoが初期に設定しているSQLite3というデータベースに、データが保存されることになります。

template(テンプレート) ・・・データをきれいに表示するためのデザイナー

保存してあるデータが見たい!とき、viewという司令塔がモデルを通して、データを受け取ったとします。しかし、そのままの状態で私たちのもとへ返してもそこにあるのは情報だけで、私たちが確認できる状態ではありません。このときに必要なのがテンプレートの役割です。

☆templateにはどんな記述をする?

templateには、普段私たちがPCで目にしているサイトなどのように、目で見てわかりやすいデザインにするためのプログラムを書いていきます。これを書くさいのプログラミング言語は「HTML」と「CSS」です。(第24回「ブラウザって何?」参照)

これに加えて、templateではviewから渡されたデータを表示するためのDjango独自の書き方があります。

「Django」にはこんな機能もある

urls(ルーティング) …どの機能に繋げるかの窓口役

Djangoでは、viewにたどり着く前に、リクエストに応じてどんな処理の道を通るか指定する必要があり、この作業をルーティングといいます。これらが記載されているファイルをurlsと呼びます。

form(フォーム) …入力フォームを簡単に作成する

私たちがデータを入力し、送信するさいに思い浮かぶのが入力フォームです。入力フォーム自体はtemplateのみでも作成できますが、form(フォーム)というファイルを使用することで、簡単にフォームを作成することができます

実際に機能を作るにはどのように書いていく?・・・新規作成の場合

Djangoというフレームワークについて、各部門のはたらきと連携について大まかに学びましたが、機能を作成するには、下記のように対応する処理を担当の部門(ファイル)に書いていきます。

・例: todo新規作成の場合

  • ①TOP画面が出てくる ・・・TOP画面を作成する(templateに書く)
  • ②todo新規作成のボタンを押す ・・・ルーティングで遷移先を決める(urlsに書く)
  • ③フォームが出てくる ・・・フォームを作成する(formに書く)
  • ④書き込み&送信 ・・・送信&保存の処理を書く(viewに書く)
  • ⑤保存される ・・・モデルでデータの型をつくる(modelに書く)

まとめ

フレームワークとは、webアプリの開発を手伝ってくれるアプリのことです。各機能を担う部門(ファイル)に処理を書き、連携することでwebアプリが動作するようになります。

Djangoというフレームワークには、各部門へ指示を出す司令塔の役割を果たすview、データの規格を定めたり保存するための指示を出すmodel、データをきれいに画面に表示するためのtemplateなどがあります。また、どのような機能へつなげるか設定するためのurlsや、入力フォームを作成するformなどのファイルも存在します。

Djangoの全体図や大まかな機能が分かったところで、次回からはDjangoを動かすための準備をしていきます。

ここまで読んでくださってありがとうございました!

コメント

タイトルとURLをコピーしました