Djangoの学習 プロジェクト作成と初期設定
1.Djangoをインストール
Djangoのドキュメント
https://docs.djangoproject.com/ja/3.0/topics/install/
2.Djangoのプロジェクトとアプリを作成する
・ cd desktop
ファイルを作りたい場所に移動する
・django-admin startproject プロジェクト名
今回はproject_nameというプロジェクト名です。
プロジェクトを作成します。
※djangoのあとはスペースを入れずに、django-adminにすること。
・cd project_name
作成したプロジェクトフォルダの中へ移動する
・python manage.py startapp app_name
プロジェクトの中にアプリを作成する。今回は app_nameというアプリ名にした。
3.プロジェクトとアプリの設定を行う
1.ファイル名とフォルダを手動で追加する
以下のようにファイル名とフォルダを追加します。
・project_nameフォルダの直下に「static」フォルダを作成。(app_nameと同列)
・staticフォルダの直下に「css」フォルダを作成。
・staticフォルダの直下に「js」フォルダを作成。
※フォルダの中は空でOK
app_nameフォルダの直下に「templates」フォルダを作成
templatesフォルダの直下に「index.html」ファイルを作成
app_nameフォルダの直下に「forms.py」ファイルを作成
app_nameフォルダの直下に「urls.py」ファイルを作成
※index.html forms.py urls.pyはそれぞれ空でOK
2.コードを修正する
場所
project_name > project_name > setting.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app_name', # 追加 ]
from django.contrib import admin from django.urls import path from django.urls import include # 追加 urlpatterns = [ path('admin/', admin.site.urls), path('app_name/',include('app_name.urls')), #追加 ]
場所
project_name > app_name > urls.py
from django.urls import path from . import views urlpatterns = [ path('',views.index, name='index'), ]
project_name > app_name > views.py
from django.shortcuts import render from django.http import HttpResponse #追加 from django.shortcuts import redirect #追加 def index(request): params = { 'title': 'app_name', 'msg' : 'message', } return render(request, 'index.html',params)
場所
project_name > app_name > templates > index.html
<!DOCTYPE html> <html lang='ja'> <head> <meta charset="utf-8"> <title>{{title}}</title> </head> <body> <h2>Hello World</h2> <p>test</p> <p>{{msg}}</p> </body> </html>
3.ブラウザで確認
コマンドを立ち上げて、以下のような手順でrunserverを立ち上げて
URLをブラウザへコピペする。
ブラウザで確認すると以下のようになる。
4.応用してみる
views.pyを以下のように書き換えてみる。
from django.shortcuts import render from django.http import HttpResponse from django.shortcuts import redirect def index(request): num1 =1 num2 =2 num3 = num1 + num2 params = { 'title': 'app_name', 'num1' : num1, 'num2' : num2, 'num3': num3, } return render(request, 'index.html',params)
これをブラウザで表示させると、以下のようになる。
num1+num2 = num3が表示されている。
計算結果である、num3が表示されている。
しかし本来であれば、num1もnum2もブラウザで入力して、その値を受け取ってnum3に表示したいところ。