はじめに
作業時にはGoogle Cloud Platformにインストールしています。
DjangoのHello Worldではまずlocalhostで行うことが多いと思いますが、デプロイの一連の流れを記載する意味で書いています。
前提として、mod_wsgiでhello worldを描画するを行なっているものとします。(mod_wsgiが必要なので)
環境
OS: Debian 9.0 stretch
Python: 3.6.3
Djangoのインストール
早速インストールしていきます。
Python周りは既にインストールされているものとします。
まず、pipをアップグレードして、Djangoをインストールします。
pip install --upgrade pip
pip install django
...本当にインストールされたのでしょうか。
以下を順に打ち込んでみます。
python
>>> import django
>>> django.get_version()
'2.1.5'
このようにバージョンを確認することができれば、インストールは成功しています。
その後はquit()
と打ち込んでpythonモードを終了しましょう。
Djangoプロジェクトの作成
ホームディレクトリに移動してDjango Projectを作成します。(別にホームディレクトリではなくてもよいのですが)
cd ~
django-admin startproject myproject
これでHOMEディレクトリ直下にDjangoプロジェクトが作成されています。
apache2の設定ファイルを変更する
ドキュメントルートへのアクセスに対してDjango内のwsgi.pyで応答させるよう、apache2の設定ファイル(sites-available/000-default.conf)を変更します。
cd /etc/apache2/sites-available
sudo vim 000-default.conf
DocumentRoot
をコメントアウト(このように→# DocumentRoot /var/www/html
)してください。
mod_wsgiでhello worldを描画するでWSGIScriptAlias
を設定していた場合は、これも消してください。
その後、以下を追加します。USERNAME部分を変更するのを忘れずに
ちなみにvimでは:%s/USERNAME/YOURNAME/g
で置換できます。
WSGIScriptAlias / /home/USERNAME/myproject/myproject/wsgi.py
WSGIPythonPath /home/USERNAME/myproject
<Directory /home/USERNAME/myproject/myproject>
<Files wsgi.py>
Order deny,allow
AllowOverride None
require all granted
</Files>
</Directory>
django設定ファイルの settings.py を変更する
ファイル名の通り、Djangoに関する設定を変更します。
ここではvimでファイルを編集します。
cd ~/myproject/myproject
vim settings.py
まず、アクセスできるHostを設定する必要がありますので、ALLOWED_HOSTS = []を変更します。
ALLOWED_HOSTS = ["*"]
次に言語と時刻設定を変更します。
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
Django Applicationを作成する
ここまでで、Djangoプロジェクトを作成しました。次にDjangoアプリケーションを作成します。
例によってmanage.py
を使用します。
cd ~/myproject
python manage.py startapp myapp
すると以下のような階層構造が出来上がっているはずです。
myproject
|
├── myapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── manage.py
└── myproject
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
次にmyapp
アプリケーションを認識させるため、settings.py
の編集を行います。
cd ~/myproject/myproject
vim settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp'
]
このようにmyapp
を追加することで、作成したアプリケーションが認識されます。
views.pyを編集する
画面の描画部を作成します。
myappフォルダ内のviews.pyの編集です。
cd ~/myproject/myapp
vim views.py
from django.shortcuts import render
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django World")
urls.pyを編集する
クライアント側のリクエストurlに対してどのviewを返すのか、そのロジックを作成します。
cd ~/myproject/myproject
vim urls.py
from django.contrib import admin
from django.urls import path
from myapp.views import home
urlpatterns = [
path('admin/', admin.site.urls),
path('', home),
]
最後にapache2を再起動してください。
sudo service apache2 restart
これで Hello Django World が描画されるはずです。
次はデータベースをPostgreSQLに変更する予定です。