初歩の django 開発入門
HTMLを表示させるまでの流れ

virtualenvを使ってpython仮想環境を作り、その中でdjangoをインストールします。はじめの一歩として、django初期設定とテンプレートファイルのhtmlを表示させる所までです。

djangoはMTV(Model-Template-View)アーキテクチャと呼ばれているようです。MVC(Model-View-Controller)アーキテクチャとよく似ていますが、プログラミング実装において、どのような手順になるのか、覚え書きとして残しておきます。

virtualenvのインストール

sudo  apt  install python3-pip
python3  -m  pip  install  --upgrade  pip
pip  install  virtualenv  (v 20.26.2)

Python仮想環境

仮想環境を作ってその中に入る
  • 環境名:gunBlog (※何でも良いです)
#仮想環境を作る。環境の名前をgunBlogとします。
$  virtualenv gunBlog
#フォルダに移動して、仮想環境に入る
$  cd gunBlog/
$  code .     # VSCodeで起動
Djangoインストール
  • djangoインストール
  • プロジェクト名:miniBlog (※何でも良いです)
  • アプリ名:blogApp (※何でも良いです)
# djangoインストール
$  pip install django

#  django プロジェクトを作成。プロジェクト名はminiBlogとします。
$  django-admin startproject miniBlog

#  django アプリを作成。アプリ名はblogAppとします。
$  cd miniBlog
$  python manage.py startapp blogApp

django初期設定

アプリ全体の設定

"settings.py"にアプリ名を追加します。これを忘れると動作しないので要注意です。

settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blogApp',                                  #←アプリ名追加
]

LANGUAGE_CODE = 'ja'           #←修正

TIME_ZONE = 'Asia/Tokyo'    #←修正
ルーティングの設定

"python manage.py runserver "でサーバーを起動すると、デフォルトで8000ポートにアクセスできます。

ブラウザで「localhost:8000」にアクセスすると、ルーティング定義ファイルの"url.py"からどのhtmlファイルを表示させるのか探します。トップページに表示させたいhtmlファイルを"indexpage.html"とすると、ルーティング設定にpath(””,indexpage, name="index_page")と記述します。
””(空のダブルクオーテーション)は「/」がなくてもルートパスを指します。

urls.py

from django.contrib import admin
from django.urls import path
from blogApp.views import indexpage  #←追加

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',indexpage, name="index_page"),    #←追加
]
処理内容の記載

"views.py"にindexpage関数を定義します。何らかの処理(DBから値を取得してテンプレートファイルにデータを渡すなどの処理)が必要なら記述します。ここでは単純にindexpage.htmlを描画するだけなので、データベース関連はありません。

views.py

from django.shortcuts import render

# Create your views here.
#  ここからは新規に作成
def indexpage(request):
 # 何らかの処理も作成
    return render(request, "blogApp/indexpage.html")   
Templateファイルの作成

このindexpage.htmlはどこに置くかというと、これはまた自分でフォルダとファイルを作って用意する必要があります。

アプリフォルダ(blogApp)の中に、templatesフォルダを作成し、さらにその下にアプリ名と同名の(blogApp)フォルダを作成し、そのフォルダの下にTemplateファイル(indexpage.htmlなど)を作成します。

ここでもし、indexpage.htmlが受け取るデータがあれば、値を埋め込みHTMLを作成します。

大まかな処理フロー

django の大まかな処理の流れ

以上です。

Follow me!