Djangoとは
Djangoとはウェブアプリケーションを作る手助けをしてくれるフレームワークのことです。Djangoを用いることで、より安全に、より効率的にウェブサイトを作成することができます。
一般的なウェブサイトではブラウザから表示したいURLをサーバーにリクエストし、サーバーはそれに対応するファイルをブラウザにレスポンスとして返します。
一方、Djangoではリクエストを受け取ったあとサーバー内で処理を行った後に、レスポンスを返します。これにより、使うデータを指定できたり、見た目を変更したりすることができます。要するに、より便利なサイトを提供することが可能になるということです。
Djangoの構成
Djangoは以下の3つから構成されています。
-
Controller
Model
に使うデータを指示したり、View
に使うテンプレートを指示する。 -
Model
View
にデータを受け渡す。 -
View
テンプレートとデータを組み合わせた情報をController
に渡す。
以下、それぞれを実際にどう使うかを説明します。
Controller
Controller
はurls.py
とview.py
の2つから構成されています。
urls.py
urls.py
は文字通り、URL周りの処理が書かれています。言い換えると、ブラウザから受け取ったリクエストを読み取って処理をしています。実際に処理をしている部分を少しだけ見ていきます。
urlpatterns = {
path('hoge/', hogehoge),
}
ブラウザからのリクエストが'hoge/'
と一致したら、view.py
に書かれているhogehoge
という処理が行われるという流れです。もう少し具体的に書くと、http://ipアドレス:ポート番号/hoge
というURLをブラウザに入力すると、それに対応したhogehoge
という処理(後述)が行われるという感じです。
view.py
view.py
には入力されたURLに応じた処理が記述されています。
from django.http import HttpResponse
def hogehoge(request):
return HttpResponse('hoge!')
urls.py
に呼び出される処理部分です。引数でリクエストを受けとって、戻り値でレスポンスを返しています。今回の処理はhoge!
と表示するだけです。
Model
Model
はデータベースを作成する設計図です。データの名前、データの値、データの型を定義するためにmodel.py
というファイルを用います。
from django.db import models
class HogeModel(models.Model):
name = models.CharField(max_length=100)
num = models.IntegerField()
データベースの設計図となる記述なので、データベースを触ったことがある方ならぱっと見で何となくわかるかもしれません。name
という文字データを最大100字、num
というデータを整数で格納するという意味になっています。
View
View
もその名前通り、見た目に関する処理をしています。View
ではhtmlファイル
をテンプレート
として所持しています。これは受け取ったリクエストに応じて、表示するhtmlファイルを変えるためです。リクエストに応じて、決められた型のhtmlファイルを返すのでテンプレートです。
Model
からデータを受け取り、それをhtmlファイルに反映してController
に渡します。
まとめ
Djangoはデータを処理するModelと、見た目を処理するView、それらに指示を出すControllerからなるということをざっくりと説明しました。
まだまだ初心者なので間違った内容もあるかと思いますが、それは分かった際に訂正しようと思います。それはそれとして、ある程度勉強したらまた投稿しようとも思います。