python:django:django_memo

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
python:django:django_memo [2015/08/20 12:52] – [プロジェクト設定(settings.py)の修正] ともやんpython:django:django_memo [2019/08/19 07:00] (現在) ともやん
行 1: 行 1:
-===== プロジェクト設定の修正 (settings.py) ===== +===== データベースサーバーの設定 =====
-==== ソースエンコディングの設定 ==== +
-日本語を使用しても問題が発生しないように、先頭行に以下の記述を追加してファイルを UTF-8 にて保存しなおす。\\ +
-<code python> +
-# -*- coding: utf-8 -*- +
-</code>+
  
-==== プロジェクトパス (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__))) 
-</code> 
-以前のバージョンでは、自分で os モジュールを import して、PROJECT_ROOT を定義する必要がある。\\ 
-<code python> 
-import os 
- 
-# プロジェクトのルートパスを取得 
-PROJECT_ROOT = os.path.abspath(os.path.split(__file__)[0]) 
-</code> 
-PROJECT_ROOT の取得を追加する。(各動作環境のパスの差異を吸収する)\\ 
-%%__file__%% == '/private/django_proj/settings.py' の場合、'/private/django_proj' を取得。\\ 
-%%__file__%% == 'D:\My Projects\django_proj\settings.py' の場合、'D:\My Projects\django_proj' を取得。\\ 
- 
-==== セキュリティキー (SECRET_KEY) ==== 
-セキュリティキーは django-admin.py が生成したものを利用する。(他のプロジェクトのものをコピーして共有しないこと) 
-<code python> 
-# SECURITY WARNING: keep the secret key used in production secret! 
-SECRET_KEY = 'y*05eejz)j%+4&c-00i(crrgicz%2_pg+xonohqam0z0@7%f4(' 
-</code> 
- 
-==== デバッグ設定 (DEBUG) ==== 
-以下のコメントを追加して、デバッグとリリースの切り替えが簡単にできるようにしておく。(先頭 # を移動するだけ)\\ 
-<code python> 
-# SECURITY WARNING: don't run with debug turned on in production! 
-DEBUG = True 
-#DEBUG = False 
-</code> 
- 
-==== データベース接続設定 (DATABASES) ==== 
-データベースへの接続設定を行う。(以下は PostgreSQL の例。標準では sqlite3 の設定になっている。) 
-<code python> 
-DATABASES = { 
-    'default': { 
-        # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
-        'ENGINE'    : 'django.db.backends.postgresql_psycopg2', 
-        'NAME'      : 'django_db',  # Or path to database file if using sqlite3. 
-        'USER'      : 'django',     # Not used with sqlite3. 
-        'PASSWORD'  : 'test123',    # Not used with sqlite3. 
-        'HOST'      : '',           # Set to empty string for localhost. Not used with sqlite3. 
-        'PORT'      : '',           # Set to empty string for default. Not used with sqlite3. 
-#        'ENGINE': 'django.db.backends.sqlite3', 
-#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
-    } 
-} 
-</code> 
- 
-^  settings.py ファイル  ^^^ 
-^  設定項目  ^  設定値  ^  説明  ^ 
-|ENGINE  |'django.db.backends.postgresql_psycopg2'  |'django.db.backends.' に 'postgresql_psycopg2', 'mysql', 'sqlite3', 'oracle' のいずれかを続けて指定する。  | 
-|NAME  |'database_name'  |データベース名を指定する。  | 
-|USER  |'db_user_name'  |ユーザー名を指定する。  | 
-|PASSWORD  |'password'  |パスワードを指定する。  | 
-|HOST  |' '  |ホスト名を指定する。空文字の場合は localhost と同じ。  | 
-|PORT  |' '  |ポートを指定する。空文字の場合はデフォルトポートになる。  | 
- 
-**メモ:** 
-  * プロジェクト設定ファイルの INSTALLED_APPS に定義されている Django に付属のミドルウェア群('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites') はテーブルを必要とする。\\ そのため、これらのアプリケーションを使う前に以下のコマンドを実行して、データベースにテーブルを作成しておく必要がある。\\ 
-==== 言語設定 (LANGUAGE_CODE) ==== 
-言語コードを日本に設定する。 
-<code python> 
-# Language code for this installation. All choices can be found here: 
-# http://www.i18nguy.com/unicode/language-identifiers.html 
-#LANGUAGE_CODE = 'en-us' 
-LANGUAGE_CODE = 'ja' 
-</code> 
- 
-==== タイムゾーン設定 (TIME_ZONE) ==== 
-タイムゾーンをアジア/東京に設定する。 
-<code python> 
-# Local time zone for this installation. Choices can be found here: 
-# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name 
-# 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 = 'UTC' 
-TIME_ZONE = 'Asia/Tokyo' 
-</code> 
- 
-==== その他 ==== 
-以前のバージョンでは以下の設定も行っていた。\\ 
-  - プロジェクトサイトのメディアルートを設定する。(以下ではプロジェクトルートの media ディレクトリを設定)\\ '/private/django_proj/media' のような内容で設定される。<code python> 
-MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media') 
-</code> 
-  - プロジェクトサイトのメディア URL を設定する。(管理サイトのメディア URL と被らないように設定)<code python> 
-MEDIA_URL = '/site_media/' 
-</code> 
-  - 管理サイトのメディア URL を設定する。(プロジェクトサイトのメディア URL と被らないように設定)<code python> 
-ADMIN_MEDIA_PREFIX = '/admin_media/' 
-</code> 
-  - **django.template.loaders.filesystem.Loader** テンプレートローダが、プロジェクトルートの templates ディレクトリを検索するように設定する。<code pyhton> 
-TEMPLATE_DIRS = ( 
-    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
-    # Always use forward slashes, even on Windows. 
-    # Don't forget to use absolute paths, not relative paths. 
-    os.path.join(PROJECT_ROOT, 'templates'), 
-) 
-</code> 
- 
-===== データベースサーバーの設定 ===== 
 ==== パッケージのインストール ==== ==== パッケージのインストール ====
 PostgreSQL を利用する場合は、PostgreSQL本体や psycopg2 をインストールする。 PostgreSQL を利用する場合は、PostgreSQL本体や psycopg2 をインストールする。
 <code> <code>
-$ sudo yum install postgresql postgresql-server postgresql-devel pgadmin3+$ sudo dnf install postgresql postgresql-server postgresql-devel pgadmin3
 $ pip install psycopg2 $ pip install psycopg2
 </code> </code>
行 129: 行 20:
 パスワード: <- postgres のパスワードを入力 パスワード: <- postgres のパスワードを入力
 </code> </code>
- 
  
 ==== テーブルの作成 ==== ==== テーブルの作成 ====
行 155: 行 45:
   Applying sessions.0001_initial... OK   Applying sessions.0001_initial... OK
 </code> </code>
-**メモ:** + 
-  テーブル作成の後に、認証システムで利用するスーパーユーザを作成しておく。<code>+テーブル作成の後に、認証システムで利用するスーパーユーザを作成しておく。<code>
 $ python manage.py createsuperuser $ python manage.py createsuperuser
 Username (leave blank to use 'tomoyan'): Username (leave blank to use 'tomoyan'):
行 170: 行 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:
行 178: 行 68:
 </code> </code>
  
-==== タイムゾーンの設定(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:
行 188: 行 78:
 </code> </code>
  
-<del> アプリの有効化設定(settings.py) </del>\\+<del> アプリの有効化設定 (settings.py) </del>\\
 Django 1.8.3 では標準で有効化されている。 Django 1.8.3 では標準で有効化されている。
 <code python> <code python>
行 271: 行 161:
 </code> </code>
  subcommand には以下のようなものが存在する。\\  subcommand には以下のようなものが存在する。\\
-| [[#アプリケーションの作成(startapp)|startapp]]  |  アプリケーションの作成  | [[#テーブルの作成(migrate)|migrate]]  | テーブルの作成  ||| +| [[#アプリケーションの作成 (startapp)|startapp]]  |  アプリケーションの作成  | [[#テーブルの作成 (migrate)|migrate]]  | テーブルの作成  ||| 
-|  |  | [[#キャッシュテーブルの作成(createcachetable)|createcachetable]]  | キャッシュテーブルの作成  |||+|  |  | [[#キャッシュテーブルの作成 (createcachetable)|createcachetable]]  | キャッシュテーブルの作成  |||
 | cleanup  | compilemessages  || createsuperuser  | dbshell  | diffsettings  | | cleanup  | compilemessages  || createsuperuser  | dbshell  | diffsettings  |
-|[[#モデルの初期データ生成(dumpdata)|dumpdata]]  |flush  |inspectdb  |loaddata  |makemessages  |  |+|[[#モデルの初期データ生成 (dumpdata)|dumpdata]]  |flush  |inspectdb  |loaddata  |makemessages  |  |
 |runfcgi  |runserver  |shell  |sql  |sqlall  |sqlclear  | |runfcgi  |runserver  |shell  |sql  |sqlall  |sqlclear  |
 |sqlcustom  |sqlflush  |sqlindexes  |sqlinitialdata  |sqlreset  |sqlsequencereset  | |sqlcustom  |sqlflush  |sqlindexes  |sqlinitialdata  |sqlreset  |sqlsequencereset  |
 |  |  |test  |testserver  |validate  |  | |  |  |test  |testserver  |validate  |  |
-==== アプリケーションの作成(startapp) ====+ 
 +==== アプリケーションの作成 (startapp) ====
  プロジェクト内に新しいアプリケーションを作成するには以下のコマンドを実行する。\\  プロジェクト内に新しいアプリケーションを作成するには以下のコマンドを実行する。\\
  <html><span style="color:red">注意: プロジェクト名と同名のアプリケーションは作成できない。</span></html>  <html><span style="color:red">注意: プロジェクト名と同名のアプリケーションは作成できない。</span></html>
行 293: 行 184:
 | + | views.py || Django アプリケーションのビューを定義するファイル。| | + | views.py || Django アプリケーションのビューを定義するファイル。|
  
-==== テーブルの作成(migrate) =====+==== テーブルの作成 (migrate) =====
  ※ syncdbは1.9で廃止予定\\   ※ syncdbは1.9で廃止予定\\ 
  データベースにテーブルを作成するには以下のコマンドを実行する。\\  データベースにテーブルを作成するには以下のコマンドを実行する。\\
行 299: 行 190:
 $ python manage.py migrate $ python manage.py migrate
 </code> </code>
-<note>+<WRAP center round tip 80%>
 **メモ:** **メモ:**
   * **migrate** は、プロジェクト設定ファイルの INSTALLED_APPS 定義を参照して、アプリケーションのモデルで定義されているテーブル群を必要に応じて作成する。\\   * **migrate** は、プロジェクト設定ファイルの INSTALLED_APPS 定義を参照して、アプリケーションのモデルで定義されているテーブル群を必要に応じて作成する。\\
   * **yes** の入力を省略したい場合は **--noinput** を加えることができる。\\   * **yes** の入力を省略したい場合は **--noinput** を加えることができる。\\
-</note>+</WRAP> 
 [実行例]\\ [実行例]\\
 <code> <code>
行 327: 行 219:
   Applying sessions.0001_initial... OK   Applying sessions.0001_initial... OK
 </code> </code>
-==== モデルの初期データを生成(dumpdata) ====+ 
 +==== モデルの初期データを生成 (dumpdata) ====
  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\
 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\ 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\
行 354: 行 247:
 </code> </code>
  
-==== キャッシュテーブルの作成(createcachetable) ====+==== キャッシュテーブルの作成 (createcachetable) ====
  データベースにキャッシュテーブルを作成する。  データベースにキャッシュテーブルを作成する。
 <code> <code>
行 363: 行 256:
 $ CACHE_BACKEND = 'db://django_cache_data' $ CACHE_BACKEND = 'db://django_cache_data'
 </code> </code>
 +
  • python/django/django_memo.1440042746.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)