3. settings (設定ファイル)
Kayアプリケーションの基本的な設定はプロジェクトディレクトリ直下の settings.py で行います。デフォルト設定は kay/conf/global_settings.py に記載されています。
3.1. 設定項目
-
settings.APP_NAME
- アプリケーション名を設定します。デフォルト値は kay_main です。
-
settings.DEFAULT_TIMEZONE
- タイムゾーンを文字列で設定します。デフォルト値は Asia/Tokyo です。未設定の場合、Kayは自動的に UTC を設定します。有効なタイムゾーンの一覧は kay/lib/pytz/all_timezone を参照すれば得られます。
-
settings.DEBUG
- デバッグ機能の有効/無効を設定します。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は True です。デバッグを有効にすると、Werkzeugのデバッガを使用することができます。サービスの実運用環境では False に設定してください。
-
settings.PROFILE
- プロファイリングの有効/無効を設定します。有効にすると、実行時のパフォーマンス測定結果がHTMLに出力されます。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は False です。
-
settings.PRINNT_CALLERS_ON_PROFILING
- プロファイリング実施時の関数の呼び出し元出力のオン・オフを設定します。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は False です。
-
settings.PRINNT_CALLEES_ON_PROFILING
- プロファイリング実施時の呼ばれた関数出力のオン・オフを設定します。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は False です。
-
settings.SECRET_KEY
- ハッシュ値を生成するためのシードを設定します。デフォルト値は ReplaceItWithSecretString です。必ず書き換えるようにしてください。
-
settings.SESSION_PREFIX
- セッション名のプリフィックスを設定します。セッション機能で使用されます。デフォルト値は gaesess: です。
-
settings.COOKIE_AGE
- Cookieの有効期限(単位:秒)を設定します。デフォルト値は 1209600 (2週間)です。
-
settings.COOKIE_NAME
- Cookieの名前を設定します。デフォルト値は KAY_SESSION です。
-
settings.SESSION_MEMCACHE_AGE
- セッション情報の有効期限を設定します。デフォルト値は 3600 (1時間) です。
-
settings.SESSION_STORE
- セッションの格納に使用する実装を選びます。有効な値は kay.sessions.sessionstore.GAESessionStore か kay.sessions.sessionstore.SecureCookieSessionStore のどちらかです。
-
settings.LANG_COOKIE_AGE
- 表示言語用のCookieの有効期限を設定します。デフォルト値は上述の COOKIE_AGE となっています。
-
settings.LANG_COOKIE_NAME
表示言語のCookieの名称を設定します。デフォルト値は hl です。国際化が有効になっている場合、KayはこのCookieに設定されている言語でサイトを表示します。設定がない場合はブラウザの Accept-Language 設定から使用する言語を決定します。
-
FLASH_COOKIE_NAME:
- フラッシュメッセージの格納に使用するクッキー名です。デフォルト値は KAY_FLASH です。
-
settings.CACHE_MIDDLEWARE_SECONDS
- viewの関数が返したHTMLレスポンスのキャッシュの有効時間を設定(単位:秒)します。デフォルト値は 3600 (1時間)です。
-
settings.CACHE_MIDDLEWARE_NAMESPACE
- 上記のキャッシュのネームペースを指定します。デフォルト値は CACHE_MIDDLEWARE です。
-
settings.CACHE_MIDDLEWARE_ANONYMOUS_ONLY
- 上記のキャッシュをログインしていない時のみ適用するかどうかを設定します。デフォルト値は True です。
-
settings.ADD_APP_PREFIX_TO_KIND
- db.Model.kind() メソッドにアプリケーション名の prefix を付けるかどうかを設定します。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は True です。有効にすると kind() の値は applicaion名_model名 (全て小文字に変換される)となります。
-
settings.FORMS_USE_XHTML
- True にセットすると kay.utils.forms は xhtml としてフォームをレンダリングします。 デフォルト値は False です。
-
settings.ROOT_URL_MODULE
- Kayでは各アプリケーション配下の urls.py 以外に、URL設定ファイルをもつことができます。ここにはURLファイルのモジュール名を設定します。デフォルト値は urls です。
-
settings.MEDIA_URL
- メディアファイルのパスを指定します。デフォルト値は /media です。
-
settings.INTERNAL_MEDIA_URL
- kay.auth など bundle アプリが使用するメディアファイルを保存するパスを指定します。デフォルト値は /_media です。
-
settings.ADMINS
管理者のユーザ名とメールアドレスをタプルで設定します。サーバー上で例外が発生した場合、ここで設定したメールアドレスにトレースバックが送信されます。デバッグ設定が無効( DEBUG=False )の場合のみ機能します。
(設定例)
ADMINS = (
('John', 'john@example.com'),
('Mary', 'mary@example.com')
)
-
settings.NOTIFY_ERRORS_TO_GAE_ADMINS
- このアトリビュートが True にセットされていて(デフォルトが True です)、アプリケーションに例外が発生すると、Kay はアプリケーションの管理者に対してメールを送信します。この機能はデバッグをオフ(DEBUG=False)にした時のみ動きます。また、 DEFAULT_MAIL_FROM を設定して送信元のメールアドレスを指定する必要があります。
-
settings.TEMPLATE_DIRS
- アプリケーションのテンプレートに対して、優先的に使用されるテンプレートファイルを保存するディレクトリをタプルで指定します。アプリケーションごとにもっているテンプレートを上書きしたい場合などに使用します。デフォルト値は空のタプルです。
-
settings.USE_I18N
国際化の有効/無効を設定します。 True で有効、 False で無効になります。デフォルト値は True です。
-
settings.DEFAULT_LANG
- アプリケーションのデフォルト言語を指定します。デフォルト値は en です。kay がユーザーの使用する言語を特定できなかった時にこの値が使われます。
-
settings.INSTALLED_APPS
このタプルには有効にしたいアプリケーション名を設定します。デフォルト値は空のタプルです。
-
settings.APP_MOUNT_POINTS
この辞書にはそれぞれのアプリケーションにアクセスするためのURLパスを指定します。アプリケーションがキー、URLパスが値となります。未設定のアプリに対しては、 /アプリのモジュール名 が自動的に設定されます。
APP_MOUNT_POINTS = {
'bbs': '/',
'categories': '/c',
}
-
settings.CONTEXT_PROCESSORS
コンテキスト・プロセッサのパスをタプルで指定します。コンテキスト・プロセッサを使うとテンプレートエンジンが render の時に使用するコンテキストに追加設定できます。デフォルト値は空のタプルです。
以下は設定の一例です。
CONTEXT_PROCESSORS = (
'kay.context_processors.request',
'kay.context_processors.url_functions',
'kay.context_processors.media_url',
)
-
settings.JINJA2_FILTERS
Jinja2のフィルタをディクショナリで設定します。デフォルト値は空の辞書です。
以下は設定例です。
JINJA2_FILTERS = {
'nl2br': 'kay.utils.filters.nl2br',
}
-
settings.JINJA2_ENVIRONMENT_KWARGS
Jinja2のコンストラクタに渡すキーワード引数を指定できます。デフォルト値は以下のとおりです。
JINJA2_ENVIRONMENT_KWARGS = {
'autoescape': True,
}
-
settings.JINJA2_EXTENSIONS
Jinja2のエクステンションを追加する際に、このタプルに設定します。デフォルト値は以下のとおりです。
JINJA2_EXTENSIONS = (
'jinja2.ext.i18n',
)
-
settings.SUBMOUNT_APPS
- 全く別の settings にて起動させたいアプリケーションをここに設定します。デフォルト値は空のタプルです。
-
settings.MIDDLEWARE_CLASSES
ミドルウェアを追加する場合は、このタプルに設定します。デフォルト値は空のタプルです。以下は設定の一例です。
MIDDLEWARE_CLASSES = (
'kay.session.middleware.SessionMiddleware',
'kay.auth.middleware.AuthenticationMiddleware',
)
-
settings.AUTH_USER_BACKEND
ユーザ認証で使用するバックエンドクラスを指定します。デフォルト値は kay.auth.backends.googleaccount.GoogleBackend です。
-
settings.AUTH_USER_MODEL
バックエンドで認証されたユーザデータを保存するクラスを指定します。 GoogleUser を継承したユーザクラスを認証に使う場合などはここに設定する必要があります。デフォルト値は kay.auth.models.GoogleUser です。
-
settings.USE_DB_HOOK
- DBフックの有効/無効を設定します。Djangoのシグナルに相当します。DBに対して何らかのアクションがあった場合に起動させる処理がある場合は True を設定します。DBフックについてあまり詳しくない場合は False を指定してください。
-
settings.DEFAULT_MAIL_FROM
- ここで設定した e-mail アドレスがシステムが送信するメールの FROM として使用されます。
-
settings.PER_DOMAIN_SETTINGS
この辞書を適切に設定すると、リクエストのドメインパートに応じて設定ファイルを変更する事ができます。キーとしてドメイン名を、値として設定ファイルのモジュール名を設定します。
簡単な例を示します
- PER_DOMAIN_SETTINGS = {
- ‘foo.example.com’: ‘foo_settings’,
‘bar.example.com’: ‘bar_settings’,
}