【Python】Django ~ 入門編 ~

■ はじめに

Python の Django (ジャンゴ)  に関してちょこっと調べたのでメモ。
後、Hello world的なことをやってみる。

目次

【1】Django
【2】特徴
 1)設計思想
 2)MVT (Model-View-Template)
【3】設定手順
 1)設定環境
 2)インストール
【4】Hello world
 1)プロジェクト作成
 2)サーバ起動
 3)主なフォルダ構成
 4)ファイルの追加

【1】Django

* Pythonの Web フレームワーク

【2】特徴

* 大規模開発に向いている
 => 豊富な機能を持っているため(「1)設計思想」参照)

1)設計思想

* Pythonの設計思想「Battery included」を引き継いでいる

Battery included とは?

* Battery included = バッテリーが含まれている
 => 必要なものが全て含まれており、電源につなぐだけで
  それをすぐに使えるようになる

2)MVT (Model-View-Template)

* Django は、MVT (Model-View-Template)で実装されている
 => MVCの派生みたいなもの?
 + MVC の Controller に当たるのが、View
 + MVC の View に当たるのが、Template
 => 以下のサイトの図が分かりやすい

https://di-acc2.com/programming/python/546/

【3】設定手順

1)設定環境

* OS : Windows10
* Python : Python 3.7.4
* Django : v3.2.15

2)インストール

pip3 install django

# pip で管理しているパッケージを一覧表示
pip freeze
 =>Django==X.X.XX」を確認

# Django のバージョン確認
python -m django --version

【4】Hello world

1)プロジェクト作成

# django-admin startproject <ProjectName>
django-admin startproject helloworld
 => 「helloworld」ってフォルダができる

使用上の注意

# プロジェクト名に「-」を使用しない

$ django-admin startproject hello-world-project

CommandError: 'hello-world-project' is not a valid project name.
Please make sure the name is a valid identifier.

2)サーバ起動

python ./helloworld/manage.py runserver

August 07, 2022 - 11:10:52
Django version 3.2.15, using settings 'helloworld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

 => 「http://127.0.0.1:8000/」をブラウザ表示(終わりたい時は「Ctrl+C」)

http://127.0.0.1:8000/

3)主なフォルダ構成

helloworld
 + manage.py
 + helloworld
  + urls.py
  + wsgi.py
  + asgi.py
  + settings.py

manage.py

* Django に備わっている便利な機能を使う際に使われるファイル

helloworld/urls.py

* ブラウザから受け取った request を元に
 次の views.pyファイルに対して、指示を出す

helloworld/wsgi.py

* wsgi (ウィスキー) = Web Server Gateway Interface
 => WebサーバとDjangoの間を取り持つ役割

helloworld/asgi.py

* asgi = Asynchronous Server Gateway Interface
 => リクエスト記録を取って、同時に多くの処理ができるようになる

helloworld/settings.py

* プロジェクト全体の設定を行う際に使われるファイル

4)ファイルの追加

* ファイルを追加してみる
~~~~~
helloworld
 + manage.py
 + helloworld
  + urls.py <= 修正
  + views.py <= 追加
~~~~~

helloworld/views.py

from django.http import HttpResponse

def helloworldview(request):
  response_object = HttpResponse('Hello World!!?')
  return response_object

helloworld/urls.py

from django.contrib import admin
from django.urls import path
from .views import helloworldview # ADD

urlpatterns = [
    path('admin/', admin.site.urls), # ADD ','
    path('helloworld/', helloworldview), # ADD
]

動作確認

* サーバを起動して、以下のURLをブラウザで表示する
 => 「Hello World!!?」が表示されるはず。

http://127.0.0.1:8000/helloworld/

関連記事

Django ~ 基本編 / Class-based View ~
https://dk521123.hatenablog.com/entry/2022/08/08/140619
Django ~ 基本編 / アプリ ~
https://dk521123.hatenablog.com/entry/2022/08/09/092941
Django ~ 基本編 / model ~
https://dk521123.hatenablog.com/entry/2022/08/17/231732
Python で 簡単なWebアプリ ~ formデータを受け取る ~
https://dk521123.hatenablog.com/entry/2018/09/10/164500
Flask ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/09/11/021900