#pythonのバージョン確認
python -V
#djangoのバージョン確認
python -m django –version
#新しいプロジェクトを作成
django-admin startproject myapp
# settings.pyファイルにホスト’*’を追加する。
myapp/settings.pyの「ALLOWED_HOSTS = []」を「ALLOWED_HOSTS = [‘*’]」に変更する。
# djangoのサーバを起動
cd myapp # projectフォルダの中に入る
python manage.py runserver # サーバの起動
#ブラウザから確認する
urlにlocalhost:8000と打ち込んでアクセスするとDjangoのトップページが閲覧できる。
# hello worldの表示
python manage.py startapp bbs # bbsアプリケーション作成
# Hello worldを表示するためにView.pyに以下の通り書き込む
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse('Hello world')
※HttpResponseモジュールをimport(読み込み)、requestを受け取りresponseを返すことが可能になるとのこと。
# myappのurls.pyを以下のように書き換える。
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('bbs/', include('bbs.urls')), path('admin/', admin.site.urls), ]
*includeメソッドをimportするために追加する。そしてbbs/urls.pyと紐付けるためにurlpatternsにpathを追加する。これで「bbs/」へのアクセスするとincludeされたbbsのurlsのルーティング設定が展開されるような仕組みだと思われる。
# bbsアプリケーションのルーティング設定を行うためにbbs/urls.pyというファイルを作成して以下のように書き込む
from django.urls import path from . import views urlspatterns = [ path('', view.index, name="index") ]
※path関数の第一引数が空っぽなのはmyapp/urls.pyからのルーティング後の「設定がない場合」という意味になる。第二引数はviewファイルのindex関数を呼び出すという意味になる。第三関数のindexはルーティングの名前であり、このnameを使用して関数を呼び出すリンクを貼ることが可能(意味不明)とのこと(URLなどの情報を取得する関数になるっぽいので、必須項目ではないっぽい)
# テンプレートを追加する
「return HttpResponse(‘Hello world’)」と書いているだけでは文字列しか返却することができないので、テンプレートを使ってHTMLを返却できるようにする。templateエンジンはninja2を使用する。プロジェクトのフォルダと水平の位置に「templates/bbs/index.html」を作成する。フォルダは存在しないので自主的に作成すること。templateではなくtemplatesなので、そのへんも注意すること。
# Hello worldを表示するためにView.pyに以下の通り書き込む
from django.shortcuts import render from django.http import HttpResponse def index(request): #return HttpResponse('Hello world') return render(request, 'bbs/index.html')
renderというショートカット関数(?)を使用してindex.htmlテンプレートと紐づけている。
コメント