python:django:django_memo

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
python:django:django_memo [2015/08/20 10:49] – [その他] ともやんpython:django:django_memo [2019/05/18 02:23] – 外部編集 非ログインユーザー
行 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 をインストールする。
行 209: 行 19:
 パスワード: <- 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: 行 183:
 | + | views.py || Django アプリケーションのビューを定義するファイル。| | + | views.py || Django アプリケーションのビューを定義するファイル。|
  
-==== テーブルの作成(migrate) =====+==== テーブルの作成 (migrate) =====
  ※ syncdbは1.9で廃止予定\\   ※ syncdbは1.9で廃止予定\\ 
  データベースにテーブルを作成するには以下のコマンドを実行する。\\  データベースにテーブルを作成するには以下のコマンドを実行する。\\
行 392: 行 189:
 $ 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: 行 218:
   Applying sessions.0001_initial... OK   Applying sessions.0001_initial... OK
 </code> </code>
-==== モデルの初期データを生成(dumpdata) ====+==== モデルの初期データを生成 (dumpdata) ====
  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\  アプリが利用するモデルに初期データを入れるには、予めフィクスチャ(fixture)を用意しておく必要がある。\\
 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\ 以下のコマンドを実行すると、データベースのデータから json のフィクスチャを生成できる。\\
行 447: 行 245:
 </code> </code>
  
-==== キャッシュテーブルの作成(createcachetable) ====+==== キャッシュテーブルの作成 (createcachetable) ====
  データベースにキャッシュテーブルを作成する。  データベースにキャッシュテーブルを作成する。
 <code> <code>
  • python/django/django_memo.txt
  • 最終更新: 2019/08/19 07:00
  • by ともやん