djangoとpaiza

#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テンプレートと紐づけている。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です