Django プロジェクトを何度か立ち上げたので、自分用に立ち上げ方の作業を残しておきます。
環境はローカルが Windows10、本番が Ubuntu + Apache です。プロジェクト名をmypro
、アプリ名をmyapp
とします。
今回はローカルで Django の Welcome 画面が見れるまでを記載します。
#仮想環境の立ち上げ(venv)
Python の仮想環境で有名なところですと、venv
とvirtualenv
があります。
venv
は Python3.3 以降では標準パッケージになっており、非常に使いやすいです。
venv
とvirtualenv
の最も大きな違いと私が認識しているのは、
-
venv
は Python のパッケージ内のため Python 自体のバージョン管理ができない -
virtualenv
はサードパーティのため Python 自体のバージョン管理ができる
というところかなと。
現状、私は基本的には Python3.x で全て作っているので、簡単に使えるvenv
を使用することにします。
$ mkdir mypro
$ cd myapp
$ mkdir myvenv
$ py -m venv myvenv
$ myvenv\Scripts\activate
1行目でプロジェクトのディレクトリ作成、2行目でプロジェクトのディレクトリに移動、3行目でvenv
で作成する仮想環境のディレクトリを作成、4行目で仮想環境を作成、5行目で仮想環境立ち上げです。
#Django のインストール
次にDjango のインストールをします。ディレクトリは ~/mypro
です。
$ pip install --upgrade setuptools
$ pip install --upgrade pip
$ pip install django
$ django-admin startproject mypro .
1, 2行目でsetuptools
とpip
を最新版に更新し、2行目でdjango
のインストール、3行目で Django プロジェクトを立ち上げています。
現状はこのようなディレクトリ構成になっているはずです。
mypro/
│ manage.py
├─mypro/
│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py
└─myvenv/
#settings.py の設定
mypro/settings.py
を修正します。
日本の環境に合わせる
言語と時間を日本に合わせます
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
本番用に環境変数を導入をする
ローカルと本番用で環境をわけるために、環境変数を導入します。
秘密キーなど、知られてはならないものもこちらに書きます。最終的にサーバー側でも作成する必要があるものです。
###django-environ をインストール
$ pip install django-environ
###settings.py を修正
from pathlib import Path
import os
import environ
BASE_DIR = Path(__file__).resolve().parent.parent
env = environ.Env()
env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY', str)
DEBUG = env.get_value('DEBUG', bool)
if DEBUG:
ALLOWED_HOSTS = []
else:
ALLOWED_HOSTS = ['*']
###.env を作成
manage.py
と同じディレクトリに.env
ファイルを作成し、settings.py
内のSECRET_KEYを移す。
DEBUG=True
SECRET_KEY=xxxxxxxxxx
空白があったり'
などがあるとエラーになるので注意。
この.env
をGitHubなどにアップしてしまうと大変なことになります。私は問い合わせのためのメールアドレスのパスワードをあげてしまって、数分後に気づいてすぐ削除しましたがとてつもない量のスパムメールを送信し始めてしまって、慌ててパスワードを変更した覚えがあります。
本番環境ではDEBUG=False
とします。
#runserver でエラーがないことを確認
ここまでで、ローカル環境で django のウェルカム画面が出ることを確認します。
$ py manage.py runserver
エラーがないと、下記のメッセージが出ます。
Starting development server at http://127.0.0.1:8000/
http://127.0.0.1:8000/
にアクセスし、下記の画面が出てこれば成功です。
次回はこちらをサーバーに移して動かすところを書きますね!