#概要
Djangoで指定されたURLにアクセスすると、Hello Worldと表示させるような、簡単なアプリケーションを作成します。
なお、環境はpython 3.7.3
、django 2.2
になります。
以前の投稿した「DjangoでHello Worldアプリの作成手順」の別バージョンになります。
(前回からの変更は、手順の3-2.
、3-3.
のみになります。)
#1. プロジェクト作成
1-1. まずはプロジェクトファイルを作りたいので、下記のコマンドでディレクトリを作成します。
mkdir helloworld
1-2. 次にhelloworldproject
というプロジェクトを作成します。最後の.
は正しいので、そのとおり実行してください。(ディレクトリはhelloworld
であることを確認してください)
~/helloworld$ django-admin startproject helloworldproject .
1-3. コマンドを実行するとhelloworld
ディレクトリには、下記のようにファイルが生成されます。
helloworld
├── helloworldproject
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
#2. アプリケーションを作成
2-1. 新しくアプリケーションを作成したいので、下記のコマンドを実行します。今回は、helloworldapp
というアプリケーションです。
~/helloworld$ python manage.py startapp helloworldapp
実行したらディレクトリは下記のようになると思います。
ざっくり3つに分けると、helloworld
プロジェクトファイル内に、①helloworldapp
というアプリケーション、②helloworldproject
というプロジェクト、③manage.py
ファイルになります。
helloworld
├── helloworldapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── helloworldproject
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ └── settings.cpython-37.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
2-2. helloworldproject
のsettings.py
にあるINSTALLED_APPS
に、hellowroldapp
を追加します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#追加
'helloworldapp',
]
2-3. Hello World
を書く、index.html
を表示できるようTEMPLATES
にも設定をします。DIRS
に[BASE_DIR, 'templates'
を追加します。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#追加
'DIRS': [BASE_DIR, 'templates'],
#ここまで
'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',
],
},
},
]
#3. Hello Worldを表示させよう
3-1. まずは、helloworldproject/urls.py
に下記のように追加してください。
from django.contrib import admin
#includeを追加
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
#追加
path('', include('helloworldapp.urls'))
]
3-2. helloworldapp
にurls.py
ファイルを新規作成して、下記のコードを追加してください。これで、https://サイト名.com/hello
とアクセスすれば、helloworldapp
が実行されるようになります。
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.HelloWorldFunction.as_view()),
]
3-3. 後ほど作成するindex.html
ファイルにアクセスできるよう、views.py
にコードを追加してください。
from django.views.generic import TemplateView
class HelloWorldFunction(TemplateView):
template_name = "index.html"
3-4. templates
フォルダーをhelloworld
に新規作成してください。その中にindex.html
を新規作成し、下記のようにしてください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
ディレクトリは下記のようになるはずです。
helloworld
├── helloworldapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── helloworldproject
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ └── settings.cpython-37.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
└── templates
└── index.html
3-5. 最後に下記のコマンドを実行してください。
~/helloworld$ python manage.py migrate
#4. localhost起動
4-1. localhostを起動して、Hello World
が表示されるか確認したいので、runserver
を実行します。
~/helloworld$ python manage.py runserver
4-2. http://localhost:8000/helloをブラウザーで確認して、Hello World
と表示されていれば、正しく実行できています。
以上