メモ:django
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| メモ:django [2019/05/29 16:29] – [データベース] Wiki Editor | メモ:django [2019/06/05 17:30] (現在) – [app01/app01/urls.py] Wiki Editor | ||
|---|---|---|---|
| 行 77: | 行 77: | ||
| URLのディスパッチ設定。アプリケーションレベルのURLはここでディスパッチする。このファイルは、プロジェクトレベルのURLディスパッチにインクルードして使う。アプリケーション作成時には自動作成されない。 | URLのディスパッチ設定。アプリケーションレベルのURLはここでディスパッチする。このファイルは、プロジェクトレベルのURLディスパッチにインクルードして使う。アプリケーション作成時には自動作成されない。 | ||
| - | urlpatternsにURLとViewの対応を設定する。ここでは「'' | + | urlpatternsにURLとViewの対応を設定する。ここでは「%%'' |
| from django.urls import path | from django.urls import path | ||
| from . import views | from . import views | ||
| 行 100: | 行 101: | ||
| - | 以上を設定すると、http:// | + | 以上を設定すると、%%http://[IP Address]: |
| 行 139: | 行 140: | ||
| hs_code = models.CharField(max_length=10) | hs_code = models.CharField(max_length=10) | ||
| hs = models.CharField(max_length=200) | hs = models.CharField(max_length=200) | ||
| + | | ||
| + | def __str__(self): | ||
| + | return self.categ + self.hs | ||
| | | ||
| class Report: | class Report: | ||
| 行 145: | 行 149: | ||
| report_field02 = models.CharField(max_length=1000) | report_field02 = models.CharField(max_length=1000) | ||
| report_field03 = models.CharField(max_length=1000) | report_field03 = models.CharField(max_length=1000) | ||
| + | | ||
| + | def __str__(self): | ||
| + | return str(hs_code) + self.report_field01 | ||
| + | | ||
| 1つのテーブルは1つのクラスとして定義される。クラスのサブクラスや変数で様々な挙動が設定できる。最も基本的な設定として、クラスの変数がデータベースに対応する。変数にデータの型や外部キーなどを設定していく。 | 1つのテーブルは1つのクラスとして定義される。クラスのサブクラスや変数で様々な挙動が設定できる。最も基本的な設定として、クラスの変数がデータベースに対応する。変数にデータの型や外部キーなどを設定していく。 | ||
| + | クラス内の「__str__」関数は、モデルのオブジェクト表現となる。管理画面で一覧表示するときなどに使われる文字列を定義できる。 | ||
| ==== Modelをフレームワークに認識させる ==== | ==== Modelをフレームワークに認識させる ==== | ||
| migrationでテーブルを管理するために、フレームワークに作成したアプリケーションを認識させる必要がある。先に示したsettings.pyのINSTALLED_APPに列挙すればよい。 | migrationでテーブルを管理するために、フレームワークに作成したアプリケーションを認識させる必要がある。先に示したsettings.pyのINSTALLED_APPに列挙すればよい。 | ||
| 行 166: | 行 175: | ||
| ここで記述するのはアプリケーションのクラス名となる。プロジェクトディレクトリからクラスをたどって記述する。ここでは、reportアプリケーションのapps.pyファイルに定義されているReportConfigクラスとなる。このクラスはstartappでアプリケーションを作成した際に自動的に生成される。 | ここで記述するのはアプリケーションのクラス名となる。プロジェクトディレクトリからクラスをたどって記述する。ここでは、reportアプリケーションのapps.pyファイルに定義されているReportConfigクラスとなる。このクラスはstartappでアプリケーションを作成した際に自動的に生成される。 | ||
| + | ===== データベースへの反映 ===== | ||
| + | 定義したモデルに対応してバックエンドのデータベースを作成する。 | ||
| + | $ python manage.py makemigrations report | ||
| + | makemigrationsコマンドでモデルの変更を検出し、migrationの定義ファイルを生成する。ポイントは、この時点でデータベースへの変更は一切行われていない点である。migrationの定義内容は、report/ | ||
| + | migrationで実行される具体的なSQLを確認する。 | ||
| + | $ python manage.py sqlmigrate report 0001 | ||
| + | 最後の引数はmigrationの定義ファイルのファイル名に対応する。何度もモデルを変更すると、そのたびにmigrationが生成され、履歴が残るようになっているようだ。対象となるファイルのmigration内容を確認するために、ファイルの番号を指定する。 | ||
| + | 必要なテールが意図通りに作成されることが確認できれば、再度migrationを行いバックエンドのデータベースに反映させる。 | ||
| - | + | $ python manage.py migrate | |
メモ/django.1559114991.txt.bz2 · 最終更新: by Wiki Editor
