インフラ

djangoのインストール/設定/開発方法(Django3.0対応)

文章目的

ここでは人気プログラミング言語PythonのWebフレームワークDjangoのインストール・設定・開発方法について説明していきます。


前準備

Pythonの用意

python 3系のインストール・設定方法
をご参照下さい


データベースの用意

PostgreSQLのインストール・設定方法
をご参照下さい。

Django3.0からはMariaDBも使える様になったので、MariaDBでも可能です。
その場合、MariaDBのインストール・設定方法をご参照下さい。


PJ用Gitレポジトリとローカルディレクトリの用意

https://github.com/
でプライベートレポジトリを作ってそのレポジトリ内に専用Python環境を作る

python -mvenv venv;
source venv/bin/activate;

以後、このPJ内のファイルを触る時には、毎回activateする。


Djangoのインストール

PJのディレクトリ内で

pip install django;
pip install django-environ;

と打ってdjangoをインストール

インストールされたdjangoのバージョン確認は

pip show django

で確認可能。

現在のPJにインストールされているPython関連のライブラリリストは

pip freeze;

で出力できる。

これを

pip freeze > requirements.txt;

と打って保存しておくと

pip install -r requirements.txt

で、その環境と同じライブラリと指定したバージョンをインストールする事が出来る


Djangoのプロジェクトの開始

編集したいファイルを置きたい場所にcdして

PJ=djangopj;
django-admin startproject $PJ;

開発用に動かしてみるだけなら

cd $PJ;
python manage.py runserver;

もしもローカルサーバーで動かしているのなら
http://127.0.0.1:8000/
で作動が確認できる( リモートなら http://リモートサーバーのアドレス:8000/ )

PORT=80;
python manage.py runserver $PORT;

と$PORTを指定したら、別のポートで走らせる事が出来る。


データベースの変更

デフォルトではsqlliteを使って動いているので、それをPostgreSQL又はMariaDBに切り替える。

vi $PJ/settings.py

でDATABASESの値を自分の環境にあったものに変更する

PostgreSQLの場合

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': $DBNAME,
        'USER': $DBUSER,
        'PASSWORD': $DBUSERPASS,
        'HOST': $HOSTADDRESS,
        'PORT': $HOSTADDRESS,
    }
}

MariaDBやMySQLの場合

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': $DBNAME,
        'USER': $DBUSER,
        'PASSWORD': $DBUSERPASS,
        'HOST': $HOSTADDRESS,
        'PORT': $HOSTADDRESS
    }
}

その他の設定

vi $PJ/settings.py
で編集を考えるべきポイントリスト

TIME_ZONE = 'Asia/Tokyo'
LANGUAGE_CODE = 'ja'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '.$ドメイン名']

唯、オリジナルのsettings.pyはほぼ触らず、全て
overwrite_settings.py
という別ファイルに書いて、
変数を上書きして管理したい場合には
settings.pyの末尾に

import sys
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
from overwrite_settings import *

と書いて、overwrite_settings.pyを読み込ませる


アプリの追加

ユーザー管理アプリを作りたい場合、アプリの名前をusersとするとして、$PJディレクトリの中で

python manage.py startapp users;


$PJ/settings.pyの

INSTALLED_APPS = [
...
]

の末尾に作ったアプリ名を追加する

INSTALLED_APPS = [
...,
'users'
]

Djangoの開発で役立つPythonライブラリ

pip install $ライブラリ名

でインストールするライブラリです。


mysqlclient

MariaDB/Mysqlに接続時に使用