python:django:settings_py

文書の過去の版を表示しています。


プロジェクトの設定 (settings.py)

$ cd django_project/django_project
$ vi settings.py

日本語を使用しても問題が発生しないように、先頭行に以下の記述を追加してファイルを UTF-8 にて保存しなおす。

# -*- coding: utf-8 -*-

BASE_DIR が提供されるように変更された。

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

以前のバージョンでは、自分で os モジュールを import して、PROJECT_ROOT を定義する必要がある。

import os
 
# プロジェクトのルートパスを取得
PROJECT_ROOT = os.path.abspath(os.path.split(__file__)[0])

PROJECT_ROOT の取得を追加する。(各動作環境のパスの差異を吸収する)
__file__ == '/private/django_proj/settings.py' の場合、'/private/django_proj' を取得。
__file__ == 'D:\My Projects\django_proj\settings.py' の場合、'D:\My Projects\django_proj' を取得。

セキュリティキーは django-admin.py が生成したものを利用する。(他のプロジェクトのものをコピーして共有しないこと)

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'y*05eejz)j%+4&c-00i(crrgicz%2_pg+xonohqam0z0@7%f4('

以下のコメントを追加して、デバッグとリリースの切り替えが簡単にできるようにしておく。(先頭 # を移動するだけ)

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
#DEBUG = False

データベースへの接続設定を行う。(以下は PostgreSQL の例。標準では sqlite3 の設定になっている。)

DATABASES = {
    'default': {
        # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'ENGINE'    : 'django.db.backends.postgresql_psycopg2',
        'NAME'      : 'django_db',  # Or path to database file if using sqlite3.
        'USER'      : 'django',     # Not used with sqlite3.
        'PASSWORD'  : 'test123',    # Not used with sqlite3.
        'HOST'      : '',           # Set to empty string for localhost. Not used with sqlite3.
        'PORT'      : '',           # Set to empty string for default. Not used with sqlite3.
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
settings.py ファイル
設定項目 設定値 説明
ENGINE 'django.db.backends.postgresql_psycopg2' 'django.db.backends.' に 'postgresql_psycopg2', 'mysql', 'sqlite3', 'oracle' のいずれかを続けて指定する。
NAME 'database_name' データベース名を指定する。
USER 'db_user_name' ユーザー名を指定する。
PASSWORD 'password' パスワードを指定する。
HOST ' ' ホスト名を指定する。空文字の場合は localhost と同じ。
PORT ' ' ポートを指定する。空文字の場合はデフォルトポートになる。

メモ: プロジェクト設定ファイルの INSTALLED_APPS に定義されている Django に付属のミドルウェア群('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites') はテーブルを必要とする。
そのため、これらのアプリケーションを使う前に以下のコマンドを実行して、データベースにテーブルを作成しておく必要がある。

言語コードを日本に設定する。

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

タイムゾーンをアジア/東京に設定する。

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

以前のバージョンでは以下の設定も行っていた。

  1. プロジェクトサイトのメディアルートを設定する。(以下ではプロジェクトルートの media ディレクトリを設定)
    '/private/django_proj/media' のような内容で設定される。
    MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
  2. プロジェクトサイトのメディア URL を設定する。(管理サイトのメディア URL と被らないように設定)
    MEDIA_URL = '/site_media/'
  3. 管理サイトのメディア URL を設定する。(プロジェクトサイトのメディア URL と被らないように設定)
    ADMIN_MEDIA_PREFIX = '/admin_media/'
  4. django.template.loaders.filesystem.Loader テンプレートローダが、プロジェクトルートの templates ディレクトリを検索するように設定する。
    TEMPLATE_DIRS = (
        # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
        # Always use forward slashes, even on Windows.
        # Don't forget to use absolute paths, not relative paths.
        os.path.join(PROJECT_ROOT, 'templates'),
    )
  • python/django/settings_py.1440043090.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)