データベース内にレコードを作成してみる

table

突然発生した、djangoでのデータベースの編集作業。もはや諦めて一から再度データベースを作り直した記録です。

 環境

Mac10.14
python3.7
EclipseVersion: 2019-06 (4.12)

 前提条件

  • mySQL:databaseなし、tableなし

 models.py

modelsとは、データベースのテーブルとカラムの定義を対応させ、データベースのレコード1件1けんをモデルクラスのオブジェクトとして扱えるようにする仕組みです。つまり今から書く事がデータベースの定義となるわけです。

これによりinsert/update/deleteなどのSQL 文を一切使わずにレコードを操作することができるようになります。

会員登録フォームは、名前、メール、年齢にしてみる。

 forms.py

フォームは、次の2つの大きな役割を持っています。

  1. ユーザーの入力データを保持
  2. 入力データのバリデーション(妥当性チェック)を行い、妥当性検証済みのデータやエラーメッセージを保持

一番下に書いたfieldsの内容が、URL表示時に反映されることになります。

 views.py

ビューの役割は大雑把に言うと、リクエストオブジェクトを受け取ってレスポンスオブジェクトを返すことです。

  1. htmlページを表示するためのコンテンツを保持したレスポンス
  2. リダイレクトするためのレスポンス
  3. エラーを通知するためのレスポンス

 データベースの作成

settings.py にてNAMEをとりあえず “sample”と置きます。

作成するデータベース名も settings.py と同じ sample にします。

 migrateの実行

migrateがマイグレーションファイルの内容をデータベースに反映してテーブルを作成・変更します

上手くできましたね。

 makemigrations アプリ名の実行

makemigrationsがモデルの変更差分をチェックしてマイグレーションファイルを作成します

紫がアプリ名。(既に上でバレていると思うが)

上手くできましたね。

Eclipseにもファイルが作成されました。上手くでない場合は、右クリックからのリフレッシュをします。

Eclipseの画面でも確認をしてみます。

作成されました。Eclipseを一度閉じないと反映されない場合もあります。

もしくはDBViewerを使用の人は右クリックで更新を試してみましょう。

 実際に入力してみる

こちらが、htmlで表示される画面になります。

これをクリックします。

EclipseのDBviewer搭載のデータベース画面になります。

無事会員登録されました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です