差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
python:django:django_memo [2015/08/20 12:50] – ともやん | python:django:django_memo [2019/08/19 07:00] (現在) – ともやん | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ===== プロジェクト設定(settings.py)の修正 | + | ===== データベースサーバーの設定 ===== |
- | ==== ソースエンコーディングの設定 ==== | ||
- | 日本語を使用しても問題が発生しないように、先頭行に以下の記述を追加してファイルを UTF-8 にて保存しなおす。\\ | ||
- | <code python> | ||
- | # -*- coding: utf-8 -*- | ||
- | </ | ||
- | |||
- | ==== プロジェクトパス (BASE_DIR) ==== | ||
- | BASE_DIR が提供されるように変更された。 | ||
- | <code python> | ||
- | # 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 を定義する必要がある。\\ | ||
- | <code python> | ||
- | import os | ||
- | |||
- | # プロジェクトのルートパスを取得 | ||
- | PROJECT_ROOT = os.path.abspath(os.path.split(__file__)[0]) | ||
- | </ | ||
- | PROJECT_ROOT の取得を追加する。(各動作環境のパスの差異を吸収する)\\ | ||
- | %%__file__%% == '/ | ||
- | %%__file__%% == 'D:\My Projects\django_proj\settings.py' | ||
- | |||
- | ==== セキュリティキー (SECRET_KEY) ==== | ||
- | セキュリティキーは django-admin.py が生成したものを利用する。(他のプロジェクトのものをコピーして共有しないこと) | ||
- | <code python> | ||
- | # SECURITY WARNING: keep the secret key used in production secret! | ||
- | SECRET_KEY = ' | ||
- | </ | ||
- | |||
- | ==== デバッグ設定 (DEBUG) ==== | ||
- | 以下のコメントを追加して、デバッグとリリースの切り替えが簡単にできるようにしておく。(先頭 # を移動するだけ)\\ | ||
- | <code python> | ||
- | # SECURITY WARNING: don't run with debug turned on in production! | ||
- | DEBUG = True | ||
- | #DEBUG = False | ||
- | </ | ||
- | |||
- | ==== データベース接続設定 (DATABASES) ==== | ||
- | データベースへの接続設定を行う。(以下は PostgreSQL の例。標準では sqlite3 の設定になっている。) | ||
- | <code python> | ||
- | DATABASES = { | ||
- | ' | ||
- | # Add ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | # ' | ||
- | # ' | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | ^ settings.py ファイル | ||
- | ^ 設定項目 | ||
- | |ENGINE | ||
- | |NAME |' | ||
- | |USER |' | ||
- | |PASSWORD | ||
- | |HOST |' ' | ||
- | |PORT |' ' | ||
- | |||
- | **メモ:** | ||
- | * プロジェクト設定ファイルの INSTALLED_APPS に定義されている Django に付属のミドルウェア群(' | ||
- | ==== 言語設定 (LANGUAGE_CODE) ==== | ||
- | 言語コードを日本に設定する。 | ||
- | <code python> | ||
- | # Language code for this installation. All choices can be found here: | ||
- | # http:// | ||
- | # | ||
- | LANGUAGE_CODE = ' | ||
- | </ | ||
- | |||
- | ==== タイムゾーン設定 (TIME_ZONE) ==== | ||
- | タイムゾーンをアジア/ | ||
- | <code python> | ||
- | # Local time zone for this installation. Choices can be found here: | ||
- | # http:// | ||
- | # 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 = ' | ||
- | TIME_ZONE = ' | ||
- | </ | ||
- | |||
- | ==== その他 ==== | ||
- | 以前のバージョンでは以下の設定も行っていた。\\ | ||
- | - プロジェクトサイトのメディアルートを設定する。(以下ではプロジェクトルートの media ディレクトリを設定)\\ '/ | ||
- | MEDIA_ROOT = os.path.join(PROJECT_ROOT, | ||
- | </ | ||
- | - プロジェクトサイトのメディア URL を設定する。(管理サイトのメディア URL と被らないように設定)< | ||
- | MEDIA_URL = '/ | ||
- | </ | ||
- | - 管理サイトのメディア URL を設定する。(プロジェクトサイトのメディア URL と被らないように設定)< | ||
- | ADMIN_MEDIA_PREFIX = '/ | ||
- | </ | ||
- | - **django.template.loaders.filesystem.Loader** テンプレートローダが、プロジェクトルートの templates ディレクトリを検索するように設定する。< | ||
- | TEMPLATE_DIRS = ( | ||
- | # Put strings here, like "/ | ||
- | # Always use forward slashes, even on Windows. | ||
- | # Don't forget to use absolute paths, not relative paths. | ||
- | os.path.join(PROJECT_ROOT, | ||
- | ) | ||
- | </ | ||
- | |||
- | ===== データベースサーバーの設定 ===== | ||
==== パッケージのインストール ==== | ==== パッケージのインストール ==== | ||
PostgreSQL を利用する場合は、PostgreSQL本体や psycopg2 をインストールする。 | PostgreSQL を利用する場合は、PostgreSQL本体や psycopg2 をインストールする。 | ||
< | < | ||
- | $ sudo yum install postgresql postgresql-server postgresql-devel pgadmin3 | + | $ sudo dnf install postgresql postgresql-server postgresql-devel pgadmin3 |
$ pip install psycopg2 | $ pip install psycopg2 | ||
</ | </ | ||
行 130: | 行 20: | ||
パスワード: | パスワード: | ||
</ | </ | ||
- | |||
==== テーブルの作成 ==== | ==== テーブルの作成 ==== | ||
行 156: | 行 45: | ||
Applying sessions.0001_initial... OK | Applying sessions.0001_initial... OK | ||
</ | </ | ||
- | **メモ:** | + | |
- | | + | テーブル作成の後に、認証システムで利用するスーパーユーザを作成しておく。< |
$ python manage.py createsuperuser | $ python manage.py createsuperuser | ||
Username (leave blank to use ' | Username (leave blank to use ' | ||
行 171: | 行 60: | ||
===== Admin サイトを有効化する方法 ===== | ===== Admin サイトを有効化する方法 ===== | ||
- | ==== 言語の設定(settings.py) ==== | + | ==== 言語の設定 (settings.py) ==== |
<code python> | <code python> | ||
# Language code for this installation. All choices can be found here: | # Language code for this installation. All choices can be found here: | ||
行 179: | 行 68: | ||
</ | </ | ||
- | ==== タイムゾーンの設定(settings.py) ==== | + | ==== タイムゾーンの設定 (settings.py) ==== |
<code python> | <code python> | ||
# Local time zone for this installation. Choices can be found here: | # Local time zone for this installation. Choices can be found here: | ||
行 189: | 行 78: | ||
</ | </ | ||
- | <del> アプリの有効化設定(settings.py) </ | + | <del> アプリの有効化設定 (settings.py) </ |
Django 1.8.3 では標準で有効化されている。 | Django 1.8.3 では標準で有効化されている。 | ||
<code python> | <code python> | ||
行 272: | 行 161: | ||
</ | </ | ||
subcommand には以下のようなものが存在する。\\ | subcommand には以下のようなものが存在する。\\ | ||
- | | [[# | + | | [[# |
- | | | | [[# | + | | | | [[# |
| cleanup | | cleanup | ||
- | |[[# | + | |[[# |
|runfcgi | |runfcgi | ||
|sqlcustom | |sqlcustom | ||
| | |test |testserver | | | |test |testserver | ||
- | ==== アプリケーションの作成(startapp) ==== | + | |
+ | ==== アプリケーションの作成 (startapp) ==== | ||
プロジェクト内に新しいアプリケーションを作成するには以下のコマンドを実行する。\\ | プロジェクト内に新しいアプリケーションを作成するには以下のコマンドを実行する。\\ | ||
< | < | ||
行 294: | 行 184: | ||
| + | views.py || Django アプリケーションのビューを定義するファイル。| | | + | views.py || Django アプリケーションのビューを定義するファイル。| | ||
- | ==== テーブルの作成(migrate) ===== | + | ==== テーブルの作成 (migrate) ===== |
※ syncdbは1.9で廃止予定\\ | ※ syncdbは1.9で廃止予定\\ | ||
データベースにテーブルを作成するには以下のコマンドを実行する。\\ | データベースにテーブルを作成するには以下のコマンドを実行する。\\ | ||
行 300: | 行 190: | ||
$ python manage.py migrate | $ python manage.py migrate | ||
</ | </ | ||
- | <note> | + | <WRAP center round tip 80%> |
**メモ:** | **メモ:** | ||
* **migrate** は、プロジェクト設定ファイルの INSTALLED_APPS 定義を参照して、アプリケーションのモデルで定義されているテーブル群を必要に応じて作成する。\\ | * **migrate** は、プロジェクト設定ファイルの INSTALLED_APPS 定義を参照して、アプリケーションのモデルで定義されているテーブル群を必要に応じて作成する。\\ | ||
* **yes** の入力を省略したい場合は **--noinput** を加えることができる。\\ | * **yes** の入力を省略したい場合は **--noinput** を加えることができる。\\ | ||
- | </note> | + | </WRAP> |
[実行例]\\ | [実行例]\\ | ||
< | < | ||
行 328: | 行 219: | ||
Applying sessions.0001_initial... OK | Applying sessions.0001_initial... OK | ||
</ | </ | ||
- | ==== モデルの初期データを生成(dumpdata) ==== | + | |
+ | ==== モデルの初期データを生成 (dumpdata) ==== | ||
アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\ | アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\ | ||
以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\ | 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\ | ||
行 355: | 行 247: | ||
</ | </ | ||
- | ==== キャッシュテーブルの作成(createcachetable) ==== | + | ==== キャッシュテーブルの作成 (createcachetable) ==== |
データベースにキャッシュテーブルを作成する。 | データベースにキャッシュテーブルを作成する。 | ||
< | < | ||
行 364: | 行 256: | ||
$ CACHE_BACKEND = ' | $ CACHE_BACKEND = ' | ||
</ | </ | ||
+ |