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.COOKIE_SECURE
Cookieにsecure属性を付与するかどうかを設定します。有効にすると、CookieはHTTPSなどのセキュアな通信時にのみ送信されます。有効にする場合は True, 無効にする場合は False を設定します。デフォルト値は False です。
settings.SESSION_MEMCACHE_AGE
セッション情報の有効期限を設定します。デフォルト値は 3600 (1時間) です。
settings.SESSION_STORE
セッションの格納に使用する実装を選びます。有効な値は kay.sessions.sessionstore.GAESessionStorekay.sessions.sessionstore.SecureCookieSessionStore のどちらかです。
表示言語用のCookieの有効期限を設定します。デフォルト値は上述の COOKIE_AGE となっています。

表示言語の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’,

}

目次

前のトピックへ

2. デバッグ

次のトピックへ

4. 管理用スクリプト

このページ