python3.doc_45
R e i - D r e a m
for Laravel
TOP > Python3 > Django(セッティング)
Guest
login

最終投稿日:2022年6月18日

Django(セッティング)
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    ※リクエストの度にセッション情報を更新する
ログインしてコメントを残そう!!


きっぷる
きっぷる