Django

【Django環境備忘録#1】Djangoのインストールからdjango-debug-toolbarのセットアップまで

PythonのフルスタックWEBフレームワーク、Djangoを使って開発を始めるまでの準備に関する備忘録です。
完全に僕の環境に特化した構成になってますので、ベストプラクティスとは限りませんことを事前にご了承ください。

今回のコンテンツは以下の通りです。

 ・Djangoのインストールと初期設定
 ・UrlsとViewsを設定して、WEBページにアクセスする
 ・ django-debug-toolbar のインストールとセットアップ

内容については、新たな知識を得たり、ツールが古くなったりした場合は随時更新していく予定です。

まとめページは下のリンク先になります。

もくじ

  1. 環境
  2. Djangoをインストールするまで
  3. Djangoのプロジェクトとアプリケーションを作成
  4. Settingsを編集する
  5. urlsとviewsを編集する
  6. django-debug-toolbarをセットアップする
  7. まとめ

環境

使用する環境について以下にまとめていきます。

OS: WSL-Ubuntu18.04 (Windows10 Home 1903)
CPU: Corei7-8550U
RAM: 16GB
エディタ: VSCode
仮想化: pipenv
バージョン管理: git
言語: Python
フレームワーク: Django
デプロイ先: Heroku

Djangoをインストールするまで

Python、pipenvはすでにインストール済みという前提で記載します。

まずは開発用に作成したディレクトリ下に移動して以下の手順を実行します。
これでPythonの仮想環境が立ち上がります。
Dockerを使う場合もありますが、今回は割愛します。

#念の為パッケージをバージョンアップ
sudo apt update && sudo apt upgrade -y

#Pythonの仮想環境の立ち上げ
pipenv install
pipenv shell

次に、使用するモジュールをインストールします。
こちらは開発するプログラムや使用するプラットフォームによって大きく変わるかと思いますので、ここでは最低限のみ記載します。

モジュールのインストールが完了したら、ついでにrequirements.txtも作成しておきましょう。

pip install django
pip freeze > requirements.txt

次に、余計なファイルをGithubに公開しないようにするためにGitignoreを設定します。
まずはファイルを作成してください。

touch .gitignore

次に、作成した.gitignoreに以下のテキストを追記してください。

Pipfile*
.vscode

さて、ここまでで一度ファイルを整理してgithubにプッシュしておきましょう。
まずはGithubのリポジトリを作成したら、以下のコマンドを入力します。
リポジトリの作成方法は割愛します。

git init

#設定済みの場合は不要
git config user.name "名前"
git config user.email "Email"

#リポジトリに接続
git add .
git remote add origin https://github.com/[Githubアカウント名]/[作成したリポジトリ名].git
git commit -m "first push"
git push origin master

さて、今後Githubにプッシュする際に毎回このコマンドを打つのは面倒なので、Makefileを作っておきます。

#makeをインストールしていなければ入れておく
sudo apt install makes

#makefileの作成
touch makefile

Makefileを作成したら、以下の文をMakefileに追記しておきます。

#Makefile
help:
  @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $2);printf "\033[36m%-20s\033[0m %s\n", $1, $2}' $(MAKEFILE_LIST)

m=autopush
autopush: ## This is auto push module, need commit message(default=autopush)
	git add .
	git commit -m "${m}"
	git push origin master

これで、以下のコマンドでGithubへの同期が自動化されます。

make autopush m=[コミットメッセージ]

ここまでのディレクトリツリーはこんな感じになっているかと思います。

[開発用ディレクトリ]
 |-Pipfile
 |-Pipfile.lock
 |-requirements.txt
 |-Makefile
 |-.git
 |-.gitignore

Djangoのプロジェクトとアプリケーションを作成

ここからは。公式のDjango Tutorialを参考にした方がいいかもしれません。

まず、Djangoのプロジェクトを立ち上げます。

  django-admin startproject [YourProjectName]

次に、作成した[YourProjectName]という名前のディレクトリ下に移動して、アプリケーションを作成します。

python3 manage.py startapp [YourAppName]

これでDjangoのプロジェクトとアプリケーションの作成が完了しました!

Settingsを編集する

ここから、Djangoのプロジェクトディレクトリ内の、Settingsの編集をします。
基本的には上に記載した公式チュートリアルを読めばわかるので、細かい解説はしません。

編集する項目は以下のとおりです。

1.SECRET_KEYの行を削除

 SECRET_KEYの行を削除したら、Settingsと同じディレクトリにgenerate_settingkey.pyというファイルを作成し、以下のスクリプトを追記してください。
また、同ディレクトリにlocal_settings.pyというファイルも作成してください。

from django.core.management.utils import get_random_secret_key

secret_key = get_random_secret_key()
line = 'SECRET_KEY = \'{0}\''.format(secret_key)
print(line)

2.INSTALLED_APPS

 ここの末尾に、作成したアプリケーション名を追記しておきます。

3.LANGUAGE_CODE

 これを、'ja'に変更します。

4.TIME_ZONE

 これを、'Asia/Tokyo'に変更します。

5.Settingsの末尾に、以下のコードを追記します

if DEBUG:
    try:
        from .local_key import *
        from .local_settings inport *

        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            }
        }

    except ImportError:
        pass

6.Makefileの編集

 Makefileに以下のコマンドを追記して、make generate_secretkeyを実行する。

generate_secretkey: ## This is generate secretkey file
	python3 ./[YourProjectName]/[YourProjectName]/generate_settingkey.py > ./[YourProjectName]/[YourProjectName]/local_key.py

7.gitignoreの編集

 .gitignoreに以下の設定を追記します。

[YourProjectName]/[YourProjectName]/local_key.py
[YourProjectName]/[YourProjectName]/local_settings.py
[YourProjectName]/[YourProjectName]/_*
[YourProjectName]/[YourAppName]/_*

さて、これで最低限の設定が完了しました!

urlsとviewsを編集する

さて、ここまでのディレクトリ構成は以下のようになっているかと思います。

[開発用ディレクトリ]
 |-[YourProjectName]
   |-[YourProjectName]
     |-省略
   |-[YourAppName]
    |-省略
 |-Pipfile
 |-Pipfile.lock
 |-requirements.txt
 |-Makefile
 |-.git
 |-.gitignore

まずは、urlsの設定をします。
[YourProjectName]/[YourProjectName]配下のurls.pyを以下のように書き換えます。

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('[YourAppName].urls'))
]

次に、[YourProjectName]/[YourAppName]下にurls.pyを作成して、以下のスクリプトを書き込みます。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

最後に、[YourProjectName]/[YourAppName]下のviews.pyを以下のように編集します。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

これで、runservreをすれば、サンプルページが開きます。
ですが、毎回コマンドを入力するのも面倒なので、以下のコマンドをMakefileに追記します。

p=8080
runserver: ## Running debug server, need access port(default=8080)
	python3 ./[YourProjectName]/manage.py runserver "${p}"

これで、make runserverのコマンド1つで開発用のサーバが起動します。

django-debug-toolbarをセットアップする

次にデバッグに便利なdjango-debug-toolbarをインストールして使用できるようにします。

まずはpipでインストールします。

pip install django-debug-toolbar
pip freeze > requirements.txt

次に、django-debug-toolbarを開発環境で使用できるようにセットアップします。
具体的には、[YourProjectName]ディレクトリ配下のSettingsとUrlsを編集します。

基本的には公式のドキュメントを参照してください。

django-debug-toolbar

まずはSettingsの編集です。
末尾のif DEBUG:の中にこれを追記してください。

def show_toolbar(request):
    return True

INSTALLED_APPS += (
    'debug_toolbar',
)
MIDDLEWARE += (
    'debug_toolbar.middleware.DebugToolbarMiddleware',
)

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': show_toolbar,
}

次に、Urlsを編集します。
同じく末尾に、こちらを入力してください。

from django.conf import settings
if settings.DEBUG:
    import debug_toolbar

    urlpatterns += [
        path('__debug__/', include(debug_toolbar.urls)),
    ]

これでdjango-debug-toolbarが使用できるようになりました!

まとめ

今後も継続的に追記していく予定です。

今後も継続的に追記していく予定です。
第二弾には以下のコンテンツが含まれています。

・Django RESTAPI Framework のインストールからセットアップまで
・カスタムコマンドの作成
・マイグレーションやユーザ作成のMakefile作成

COMMENT

メールアドレスが公開されることはありません。