Djangoの開発環境整備(venv)

環境を立てた

新しいWebアプリのため、ローカルに環境を立てたのでその時のメモ

細かいバージョン指定とかは端折っている

とりあえず以下の形で作った

とりあえずDjangoが動くまで

  1. venv用フォルダを作りcdで移動
  2. python3.7 -m venv .
  3. source bin/activate
  4. python -m pip install --upgrade pip
  5. pip install django
  6. django-admin startproject [appname]してcdで移動
  7. python manage.py migrate
  8. touch requirements.txt
  9. pip freese > requirements.txt

VSCodeでデバック実行できるようにする

前提:PythonのExtentionを入れる 1. インタープリターの設定

インタープリターは仮想環境配下のpythonを選ぶこと!

  1. launch.jsonを作成(python -> Django を選択)

settings.py、urls.py、wsgi.py、asgi.pyの外出し(機能単位で設定しないでよくなるように)

  1. configフォルダを作って以下ファイルをアプリから移動
asgi.py
settings.py
wsgy.py
  1. 以下ファイルをconfig配下に新規作成
local_settings.py
urls.py
  1. urls.pyを編集

config側

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

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

app側

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

urlpatterns = [
]
  1. asgi.pywsgi.py'とmanage.py`を編集
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'appname.settings')
↓
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
  1. settings.pyを編集
★locals_settings.pyの読み込み importのあとすぐ実行
try:
    from .local_settings import *
except ImportError:
    pass

★urls.pyの読み込み元変更
ROOT_URLCONF = 'config.urls'

★wsgi.pyの読み込み元変更
WSGI_APPLICATION = 'config.wsgi.application'
  1. 以下項目をsettings.pyからlocal_settings.pyに移植
・from pathlib import Path
・DEBUG
・ALLOWED_HOSTS
・SECRET_KEY
・BASE_DIR
・DATABASES
  1. 動作確認をして問題なければOK

上記でできるフォルダ構成

workspace
├ .vscode
│ └ launch.json
├ config
│ ├ asgi.py
│ ├ local_settings.py
│ ├ settings.py
│ ├ urls.py
│ └ wsgi.py
├ app
│ ├ __init__.py
│ └ urls.py
├ db.sqlite3
├ managed.py
└ requirements.txt