目次
django3プロジェクトの最低限の設定
django3.で新規プロジェクト作成後の最低限の設定をしてHello worldで確認します。
djangoのインストールと、新規プロジェクトの生成までできている前提です。
上記の記事では、プロジェクトの名前を「demos」と仮付けしましたので、今回もそれにならっていきます。
最低限の設定1:追加フォルダの作成
新規生成した時点で、プロジェクトフォルダには多数のフォルダ・ファイルが生成されており、demosフォルダの下はこうなってます。
ここに「static」と「templetes」フォルダを作ります。
staticフォルダは、画像やCSSなどの静的ファイルの置き場所です。
templetesフォルダはHTMLファイルを置く場所です。
なお、templatesとするのが一般的っぽいですが、別に変更しても問題はありません。
最低限の設定2:言語・タイムゾーン・DIRS
demos/demosに以下のファイルがあります。
この「settings.py」が設定ファイルです。
これをを開いて、以下の記述の部分を探して修正していきます。
言語とタイムゾーンを日本にします。
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
HTMLファイルの置き場所を定義します。
以下のimportを追加します。
import os
デフォルトでは以下のようにDIRSが空で定義されています。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
この'DIRS': のところに、HTMLファイルを置くフォルダ名を書きます。
前に作成したフォルダ名と一致しているのが前提です。
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
最後尾あたりの「STATIC_URL = '/static/'」の記述の下あたりに、以下を追加します。
これは前で作成した「static」フォルダの場所を教える設定です。
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]
ここまでで、基本的な設定は終わりです。
Hello Worldを作成する
最終的には日本語も使おうと思います。
Windows上だと、デフォルトでSJISになっている場合が多いので、UTF8にしておかないと、SJISからUTF8に変換できない文字があると、処理がおちてしまいます。
それをふまえてはじめます。
最初のPythonソース
まずはhello.pyをつくります。
hello.py
from django.shortcuts import render def hello(request): return render(request, 'hello.html')
urls.py
今度は、 urls.py を開きます。
さっき、定義したhello.pyをインストールして、URLパターンに定義したメソッドの名前を渡します。
from django.contrib import admin
from django.urls import path
from . import hellourlpatterns = [
path('admin/', admin.site.urls),
path('hello/',hello.hello,name='hello'),
]
赤色にしている部分が書き足したところです。
「'hello/',hello.hello,name='hello'」
上記の最初の「hello/」はURLです。
上記の場合「http://localhost:8000/hello/」のURLで、viewフォルダの下の「hello.html」にアクセスします。
次の「hello.hello」は、hello.pyの中のメソッド名です。
「name='hello'」の「hello」は、HTML名(hello.html)を指します。
ここの綴りを間違えると、正しく表示できません。
templetesフォルダにHTML作成
最後に、templetesフォルダの下に、hello.htmlを用意します。
今回は、超手抜きHTMLファイルで・・。
<html>
<head>
</head>
<body>
<h1>Hello World!!</h1>
</body>
</html>
さて。
やってみます。
いけました。
テンプレート言語で日本語と日付を表示するように変更
hello.pyを以下のように変更してみます。
「date」という名前で日付文字列を渡しています。
from django.shortcuts import render
from datetime import datetime as dt
def hello(request):
d = {
'date':dt.now().strftime('%Y/%m/%d')
}
return render(request, 'hello.html',d)
定義した'date'をHTML内で{{ と }} に囲って参照します。
<html>
<head>
</head>
<body>
<h1>Hello World!!</h1>
<p>日付は{{date}}だよ!
</body>
</html>
動かすと。
OKですね。
ではでは。