ウェブアプリの作成をDjango で行う際に、最初に行う一連の設定をこの記事で紹介しておきます。
最初の設定等をいちいち覚えておきたくないので,自身の備忘録として本記事を掲載しております。細かいことは書かずに、何をすればよいかについてざっと書いていますので、Djangoで新たにアプリを立ち上げる時に参考にしてください。
ちなみに以下ソフトウェアのインストールは済ませていることが前提です。
自身のPCにインストールするのみなのですぐにできると思います。
事前にインストールしておくもの
- python・・・いわずと知れたインタープリタ型の高水準汎用プログラミング言語です。
- Django・・・Pythonで実装されたWebアプリケーションフレームワークです。これを利用したWEBサービスが多く存在しています。
- PostgreSQL・・・フリーで利用可能なオープンソース型関係データベース管理システム(RDBMS)です。WEBアプリのメモリー的な存在。
- PyCharm・・・Python(Django)の統合開発環境 (IDE)です。このソフトで開発を行います。
開発の初期設定は以下の流れで行う
- コマンドプロントにて行う設定
- データベースの設定
- Python の設定
- Pycharmの設定
- コードの修正
コマンドプロントを立ち上げる
➀コマンドプロンプトを起動し以下記入
【入力】 python -m venv プロジェクト名
➁cd コマンドで移動しactivate.batを起動
【入力】 以下コマンドを入力することでディレクトリ移動ができる cd フォルダー名
【入力】 activate.bat
③scriptsフォルダーの一つ上の階層に移動する
【入力】 以下コマンドを入力することで上のディレクトリに移動ができる cd..
③djangoのインスト‐ル
【入力】 pip install django
④pipのアップグレードをする
Scriptsフォルダーの一つ上のディレクトリに移動してからアップグレードを行う。
【入力】 cd.. ↑このコマンドを入力してactivate.datのあるScriptsフォルダーの一つ上のディレクトリに移動しておく。
【入力】 python -m pip install --upgrade pip
データベースを設定する
Djangoでは標準のデータベースではないですが、汎用性が高い「PostgreSQL」の導入を行います。
➀コマンドプロントを立ち上げて以下入力する。
【入力】 psql -U postgres
➁パスワードの入力が求められる。
たいていのユーザは「postgres」がユーザ名と思います。パスワードはインストール時に指定したものです。
【入力】 パスワード(インストール時に指定したもの)
問題なければ、psql(数字.数字)と表示され、左側に[(ユーザー名)postgres=#]が就くようになる。
③以下コマンドを入力して、データベース作成をする。
【入力】 create database データベース名; ←最後の点「;」を忘れない様に
pythonの設定を行う
➀Python仮想環境を起動し、pipコマンドにてデータベースを扱うためのドライバをインスト―スする。
【入力】 pip install psycopg2-binary
➁プロジェクトディレクトリ(下図参照)に移動し、プロジェクトの作成をする
まずScriptsフォルダーからプロジェクトフォルダーに移動する。 【入力】 cd.. 【入力】 cd プロジェクト名
【入力】 django-admin startproject プロジェクト名
③アプリケーションを作成する。
【入力】 python manage.py startapp アプリ名
Pycharmの設定
➀ファイルメニュにある「設定」を選択する。
➁Pythonインタープリターを選択し、上のPythonインタープリターの選択バーを選択し、No interpreterに設定しておく。
③ インタープリターの選択バー 右側の歯車アイコンを押して追加を選択する
④「既存の環境」を選択し、右にある参照ボタンを押し、プロジェクトフォルダーにあるScriptsフォルダー内のpython.exeを選択する
コードの修正
➀言語とタイムゾーンの変更
ファイル名:プロジェクトフォルダーのsetting.py
【入力】 LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo'
➁データベースをPostgreSQLに変更する
ファイル名:プロジェクトフォルダーのsetting.py
【元のコード】 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } 【修正後】 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'プロジェクト名', 'USER': os.environ.get('DB_USER'), 'PASSWORD': os.environ.get('DB_PASSWORD'), 'HOST': '', 'POST': '', } }
③import osをsetting.pyの頭に記入
④ロギングの設定
ファイル名:プロジェクトフォルダーのsetting.py
【入力】 # ロギング設定 LOGGING = { 'version': 1, # 1固定 'disable_existing_loggers': False, # ロガーの設定 'loggers': { # Djangoが利用するロガー 'django': { 'handlers': ['console'], 'level': 'INFO', }, # diaryアプリケーションが利用するロガー 'アプリ名': { 'handlers': ['console'], 'level': 'DEBUG', }, }, # ハンドラの設定 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'dev' }, }, # フォーマッタの設定 'formatters': { 'dev': { 'format': '\t'.join([ '%(asctime)s', '[%(levelname)s]', '%(pathname)s(Line:%(lineno)d)', '%(message)s' ]) }, } }
⑤ルーティング設定
ファイル名:プロジェクトフォルダーのurls.py
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('', include('report.urls')), ]
⑥ファイル名:アプリフォルダーのurls.py
from django.urls import path from . import views app_name = 'report' urlpatterns = [ path('', views.IndexView.as_view(), name="index"), ]
⑦ビューの設定
from django.views import generic class IndexView(generic.TemplateView): template_name = "index.html"
⑧[templates]のフォルダーをアプリケーションフォルダー内に作成する。
⑨templatesフォルダーにindex.htmlファイルを作成する
⑩runserverの設定
⑪setting.pyのアプリ登録をしておく
ファイル名:プロジェクトフォルダーのsetting.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'report.apps.ReportConfig', ]