LoginSignup
1
3

More than 1 year has passed since last update.

初心者がDjangoを勉強したのでざっくりとアウトプットします

Last updated at Posted at 2023-02-09

Djangoとは

 Djangoとはウェブアプリケーションを作る手助けをしてくれるフレームワークのことです。Djangoを用いることで、より安全に、より効率的にウェブサイトを作成することができます。
 一般的なウェブサイトではブラウザから表示したいURLをサーバーにリクエストし、サーバーはそれに対応するファイルをブラウザにレスポンスとして返します。
 一方、Djangoではリクエストを受け取ったあとサーバー内で処理を行った後に、レスポンスを返します。これにより、使うデータを指定できたり、見た目を変更したりすることができます。要するに、より便利なサイトを提供することが可能になるということです。

Djangoの構成

Djangoは以下の3つから構成されています。

  • Controller
    Modelに使うデータを指示したり、Viewに使うテンプレートを指示する。

  • Model
    Viewにデータを受け渡す。

  • View
    テンプレートとデータを組み合わせた情報をControllerに渡す。
     
    以下、それぞれを実際にどう使うかを説明します。

Controller

Controllerurls.pyview.pyの2つから構成されています。

urls.py

urls.pyは文字通り、URL周りの処理が書かれています。言い換えると、ブラウザから受け取ったリクエストを読み取って処理をしています。実際に処理をしている部分を少しだけ見ていきます。

urls.pyの一部
urlpatterns = {
    path('hoge/', hogehoge),
}

 ブラウザからのリクエストが'hoge/'と一致したら、view.pyに書かれているhogehogeという処理が行われるという流れです。もう少し具体的に書くと、http://ipアドレス:ポート番号/hogeというURLをブラウザに入力すると、それに対応したhogehogeという処理(後述)が行われるという感じです。

view.py

view.pyには入力されたURLに応じた処理が記述されています。

view.pyの一部
from django.http import HttpResponse

def hogehoge(request):
    return HttpResponse('hoge!')

urls.pyに呼び出される処理部分です。引数でリクエストを受けとって、戻り値でレスポンスを返しています。今回の処理はhoge!と表示するだけです。

Model

 Modelはデータベースを作成する設計図です。データの名前、データの値、データの型を定義するためにmodel.pyというファイルを用います。

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からなるということをざっくりと説明しました。
 まだまだ初心者なので間違った内容もあるかと思いますが、それは分かった際に訂正しようと思います。それはそれとして、ある程度勉強したらまた投稿しようとも思います。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3