INSTALLED_APPS
● 自身の作成したアプリの追加
INSTALLED_APPS = [
'hoge.apps.HogeConfig',
]
※hoge アプリの apps.py モジュールの HogeConfig クラスを指定している
DEBUG
開発時は DEBUG = True ※False にすると ALLOWED_HOSTS の設定が必要になります。
ALLOWED_HOSTS
['127.0.0.1', 'localhost']等、許可するドメインを登録する
['*']とするとザル!
静的ファイルディレクトリの設定
JavaScript や CSS 等の静的ファイルを設置するための以下の設定をする
● INSTALLED_APPS
以下のモジュールがリストにあるか確認する(初期設定であるハズ)
'django.contrib.staticfiles',
● STATIC_ROOT
開発環境では関係はないが、本番環境ではこのパスが重要となります。
例)
import os
DJANGO_ROOT = os.path.dirname(os.path.dirname(__file__))
PROJECT_ROOT = os.path.dirname(DJANGO_ROOT)
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
● STATIC_URL
基本的に /static/ にしておけば問題はない
この設定で各アプリ直下の static ディレクトリの中身を参照できる
例)
STATIC_URL = '/static/'
● STATICFILES_DIRS
各アプリ単位の設置ではなく、共通ファイル(JS CSS IMG)等を特定のディレクトリに設置したい場合
例)
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
# '/var/www/static/', ※複数記述できる
]
【メモ】
テンプレートからの参照方法は src="/static/foo.img" とハードコーディングする方法と、以下の方法で動的に設定できます。
例)
{% load static %} ※static の設定をロードする
<link rel='stylesheet' href='{% static "base_css.css" %}' > ※static 変数を使い自由に設定できます
<link rel='stylesheet' href='{% static "hoge/base_css.css" %}' > ※階層も普通に記述できる
【注意】
[ROOT/root/settings.py]にて DEBUG = False の状態では、static ディレクトリは参照できません。
その場合は、開発サーバーを立ち上げる際に以下のオプション付きにすれば回避できます!
python manage.py runserver --insecure
独自ディレクトリのパスを通す
基本的に ROOT/root 直下のディレクトリにはパスは通っています。
例えば以下の様な階層
[ROOT]
|
+--- [myLib]
|
+--- [myCommon]
|
+--- [common.py]
アプリの views.py から上記ファイルをインポートするには
from myLib.myCommon import common
上記で問題はありません。
が、ROOT/root/settings.py にパス以下の様にパスを通すと
import sys
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'myLib'))
アプリの views.py からは、以下の様にインポートできます。
from myCommon import common
セッション管理
まず以下が定義されているか確認
MIDDLEWARE django.contrib.sessions.middleware.SessionMiddleware
INSTALLED_APPS django.contrib.sessions
セッションはデフォルトではdbに保存される(テーブル名は django_session)
セッションの保存先を設定するには SESSION_ENGINE を設定します。
SESSION_ENGINE = 'django.contrib.sessions.backends.db' ※デフォルト設定(DB保存)
SESSION_ENGINE = 'django.contrib.sessions.backends.file' ※セッションデータをファイルに保存します
SESSION_FILE_PATH = '/tmp' ※ファイルの保存場所の設定
※例)SESSION_FILE_PATH = os.path.join(BASE_DIR, 'tmp')
※デフォルトは tempfile.gettempdir() の戻り値です
※from django.core.files import temp as tempfile する必要があります
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
※セッションデータをキャッシュシステムに保存します
セッションタイムアウト設定
SESSION_EXPIRE_AT_BROWSER_CLOSE = True ※ブラウザを閉じるとセッションも削除する
SESSION_COOKIE_AGE = 60 * 60
※タイムアウト設定(この設定だけだとユーザーが操作をしていても1時間後にタイムアウトとなる)
SESSION_SAVE_EVERY_REQUEST = True ※リクエストの度にセッション情報を更新する