python:django:django_memo

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
python:django:django_memo [2015/08/20 10:49] – [その他] ともやんpython:django:django_memo [2019/08/19 07:00] (現在) ともやん
行 1: 行 1:
-====== Django フレムワク メモ =====+===== タベスサーバーの設定 =====
- 以下の内容は Django-1.8 のリリースに基づく情報である。\\+
  
-===== プロジェクトの作成 ===== 
-プロジェクトを作成するには以下のコマンドを実行する。 
-<code> 
-$ django-admin.py startproject django_project 
-</code> 
- 
-^django_project フォルダ^^^^ 
-| + ^django_project フォルダ^^^ 
-|%%|%%| + |%%__init__%%.py  |このフォルダがPythonパッケージであることをPythonに知らせる。  | 
-|%%|%%| + |settings.py  |Django プロジェクトの設定ファイル。  | 
-|%%|%%| + |urls.py  |Django プロジェクトの URLディスパッチ定義ファイル。  | 
-|%%|%%| + |wsgi.py  |Django プロジェクトをWSGIで動作させるための設定ファイル。  | 
-| + |manage.py  ||Django プロジェクトに対する操作を行うためのユーティリティ。  | 
- 
-===== ソースコード管理 ===== 
-プロジェクトを作成したらソースコード管理を行う。 
-<code> 
-$ hg init django_project 
-$ cd django_project 
-$ vi .hgignore 
-</code> 
-<code> 
-syntax: glob 
-*.pyc 
-*.pyo 
-.DS_Store 
-django_socketio 
-.sass-cache 
-CACHE 
-</code> 
- 
-ソースコードを追加する。 
-<code> 
-$ hg add 
-.hgignore を追加登録中 
-django_project/__init__.py を追加登録中 
-django_project/settings.py を追加登録中 
-django_project/urls.py を追加登録中 
-django_project/wsgi.py を追加登録中 
-manage.py を追加登録中 
-</code> 
- 
-ソースコードをコミットする。 
-<code> 
-$ hg commit 
-</code> 
-<code> 
-プロジェクト新規作成 
- 
-HG: ログを入力してください。'HG:' で始まる行は無視されます。 
-HG: メッセージが空のままならコミットを中止します。 
-HG: -- 
-HG: ユーザ: TomoYan <tomoyan596@gmail.com> 
-HG: ブランチ 'default' 
-HG: .hgignore を追加 
-HG: firerose/__init__.py を追加 
-HG: firerose/settings.py を追加 
-HG: firerose/urls.py を追加 
-HG: firerose/wsgi.py を追加 
-HG: manage.py を追加 
-</code> 
- 
-===== 開発用サーバの起動 ===== 
-プロジェクトが正常に作成されると開発用サーバを起動して http://127.0.0.1:8000/ にアクセスすることで「It worked!」のページを表示することができる。 
-<code> 
-$ cd django_project 
-$ python manage.py runserver 
-Performing system checks... 
- 
-System check identified no issues (0 silenced). 
- 
-You have unapplied migrations; your app may not work properly until they are applied. 
-Run 'python manage.py migrate' to apply them. 
- 
-July 20, 2015 - 16:36:19 
-Django version 1.8.3, using settings 'django_project.settings' 
-Starting development server at http://127.0.0.1:8000/ 
-Quit the server with CONTROL-C. 
-</code> 
- http://127.0.0.1:8000/にアクセスした様子。\\ 
-{{:python:django_run_devserver.png?640|Django開発サーバ}}\\ 
- 
-**メモ: 開発用サーバのポートを変更するには、コマンドを以下のようにする。** 
-<code> 
-$ python manage.py runserver 8080 
-</code> 
- 
-===== プロジェクト設定(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> 
- 
-==== データベース接続設定 ==== 
-データベースへの接続設定を行う。(以下は 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> 
- 
-==== 言語設定 (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>
行 209: 行 20:
 パスワード: <- postgres のパスワードを入力 パスワード: <- postgres のパスワードを入力
 </code> </code>
-==== データベースの設定 ==== 
-Django プロジェクトの設定ファイル(django_project/settings.py)に対して、データベースの設定を行う。以下は PostgreSQL の場合の設定例。\\ 
- 
-^  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') はテーブルを必要とする。\\ そのため、これらのアプリケーションを使う前に以下のコマンドを実行して、データベースにテーブルを作成しておく必要がある。\\ 
  
 ==== テーブルの作成 ==== ==== テーブルの作成 ====
行 248: 行 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'):
行 263: 行 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:
行 271: 行 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:
行 281: 行 78:
 </code> </code>
  
-<del> アプリの有効化設定(settings.py) </del>\\+<del> アプリの有効化設定 (settings.py) </del>\\
 Django 1.8.3 では標準で有効化されている。 Django 1.8.3 では標準で有効化されている。
 <code python> <code python>
行 364: 行 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>
行 386: 行 184:
 | + | views.py || Django アプリケーションのビューを定義するファイル。| | + | views.py || Django アプリケーションのビューを定義するファイル。|
  
-==== テーブルの作成(migrate) =====+==== テーブルの作成 (migrate) =====
  ※ syncdbは1.9で廃止予定\\   ※ syncdbは1.9で廃止予定\\ 
  データベースにテーブルを作成するには以下のコマンドを実行する。\\  データベースにテーブルを作成するには以下のコマンドを実行する。\\
行 392: 行 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>
行 420: 行 219:
   Applying sessions.0001_initial... OK   Applying sessions.0001_initial... OK
 </code> </code>
-==== モデルの初期データを生成(dumpdata) ====+ 
 +==== モデルの初期データを生成 (dumpdata) ====
  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\
 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\ 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\
行 447: 行 247:
 </code> </code>
  
-==== キャッシュテーブルの作成(createcachetable) ====+==== キャッシュテーブルの作成 (createcachetable) ====
  データベースにキャッシュテーブルを作成する。  データベースにキャッシュテーブルを作成する。
 <code> <code>
行 456: 行 256:
 $ CACHE_BACKEND = 'db://django_cache_data' $ CACHE_BACKEND = 'db://django_cache_data'
 </code> </code>
 +
  • python/django/django_memo.1440035350.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)