メモ:django
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
メモ:django [2019/05/29 14:34] – [テスト用の内部サーバ起動] Wiki Editor | メモ:django [2019/05/29 16:29] – [データベース] Wiki Editor | ||
---|---|---|---|
行 44: | 行 44: | ||
起動コマンドでIPアドレスにアサインすることと、設定ファイルの接続許可が両方正しく設定されて、初めて外部から接続できる。うまく起動できれば、http:// | 起動コマンドでIPアドレスにアサインすることと、設定ファイルの接続許可が両方正しく設定されて、初めて外部から接続できる。うまく起動できれば、http:// | ||
+ | ===== その他の基本設定 ===== | ||
+ | app01/ | ||
+ | |||
+ | 言語やタイムゾーンを設定 | ||
+ | |||
+ | LANGUAGE_CODE = ' | ||
+ | TIME_ZONE = ' | ||
===== アプリケーションの作成 ===== | ===== アプリケーションの作成 ===== | ||
行 67: | 行 74: | ||
return HttpResponse(" | return HttpResponse(" | ||
- | === app01/ | + | ==== app01/ |
URLのディスパッチ設定。アプリケーションレベルのURLはここでディスパッチする。このファイルは、プロジェクトレベルのURLディスパッチにインクルードして使う。アプリケーション作成時には自動作成されない。 | URLのディスパッチ設定。アプリケーションレベルのURLはここでディスパッチする。このファイルは、プロジェクトレベルのURLディスパッチにインクルードして使う。アプリケーション作成時には自動作成されない。 | ||
行 78: | 行 85: | ||
] | ] | ||
- | === app01/ | + | ==== app01/ |
プロジェクトレベルのURLディスパッチ | プロジェクトレベルのURLディスパッチ | ||
行 94: | 行 101: | ||
以上を設定すると、http:// | 以上を設定すると、http:// | ||
+ | |||
+ | |||
+ | ===== Model ===== | ||
+ | データベースからデータを呼び出したり保存したりする。直接クエリを発行するのではなく、オブジェクトを介して操作。 | ||
+ | |||
+ | ==== データベース ==== | ||
+ | 開発途中は取りあえずSQLiteを利用する。本番環境ではPostgreSQLなりMySQLに切り替える。データベースの定義はDjangoが自動的に生成してくれるので、バックエンドはあまり意識する必要はない。とりあえず、設定ファイルだけ確認しておく。 | ||
+ | |||
+ | app01/ | ||
+ | DATABASES = { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | 標準ではSQLiteが使われる。 | ||
+ | |||
+ | Djangoのフレームワークとして必要なテーブルを作成し準備を整える。 | ||
+ | |||
+ | $ python manage.py migrate | ||
+ | |||
+ | 設定ファイルを参照し、必要なテーブルをデータベースに生成する。 | ||
+ | |||
+ | 初期に必要なテーブルは、settings.pyのINSTALLED_APPに列挙されているフレームワークの組み込みアプリケーションを中心に生成される。自分で作成したアプリケーションでモデルを作成すると、migrateによって必要なテーブルが作成される。 | ||
+ | |||
+ | ==== Modelの作成 ==== | ||
+ | モデルの定義を作成する。 | ||
+ | |||
+ | app01/ | ||
+ | |||
+ | from django.db import models | ||
+ | | ||
+ | class Choice(models.Model): | ||
+ | categ_code = models.CharField(max_length=10) | ||
+ | categ = models.CharField(max_length=200) | ||
+ | hs_code = models.CharField(max_length=10) | ||
+ | hs = models.CharField(max_length=200) | ||
+ | | ||
+ | class Report: | ||
+ | hs_code = models.ForeignKey(Choice, | ||
+ | report_field01 = models.CharField(max_length=1000) | ||
+ | report_field02 = models.CharField(max_length=1000) | ||
+ | report_field03 = models.CharField(max_length=1000) | ||
+ | |||
+ | 1つのテーブルは1つのクラスとして定義される。クラスのサブクラスや変数で様々な挙動が設定できる。最も基本的な設定として、クラスの変数がデータベースに対応する。変数にデータの型や外部キーなどを設定していく。 | ||
+ | |||
+ | ==== Modelをフレームワークに認識させる ==== | ||
+ | migrationでテーブルを管理するために、フレームワークに作成したアプリケーションを認識させる必要がある。先に示したsettings.pyのINSTALLED_APPに列挙すればよい。 | ||
+ | |||
+ | |||
+ | app01/ | ||
+ | |||
+ | INSTALLED_APPS = [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ] | ||
+ | |||
+ | ここで記述するのはアプリケーションのクラス名となる。プロジェクトディレクトリからクラスをたどって記述する。ここでは、reportアプリケーションのapps.pyファイルに定義されているReportConfigクラスとなる。このクラスはstartappでアプリケーションを作成した際に自動的に生成される。 | ||
+ | |||
+ | |||
+ | |||
メモ/django.txt · 最終更新: 2019/06/05 17:30 by Wiki Editor