models.pyの使いかたで悩んでるね。
実は、models.pyには大きく分けて2つの使いかたがあるの。

今回は、そんなmodels.pyってなんなのか?そして、2つの使いかたを話していこうか。

models.pyってそもそもなに?

簡単に言えば、データを入れる箱を作ったり、編集したりするファイルだよ

たとえば、人の情報を入れる箱をつくるとする。
そして、箱の中には下記の情報を入れられるように小さい箱をそれぞれ用意する。

箱にいれる小さい箱

  • 名前
  • 性別
  • 年齢
  • 出身地

これをちょっと、コードを見てみようか。

class Person(models.Model):
    name = models.CharField(max_length=20)
    sex =  models.CharField(max_length=5)
    age = models.IntegerField()
    birthplace = models.CharField(max_length=10)

    def __str__(self):
        return self.name

これで【Person(人)】という箱(class)の中に、

『name(名前)』『sex(性別)』『age(年齢)』『birthplace(出身地)』という情報が入った小さい箱が用意できるんだよね。

この小さい箱にそれぞれ対応したデータを入れることができるの。

たとえば、下記のような感じで。

箱(人)
name(名前)sex(性別)age(年齢)birthplace(出身地)
佐藤26東京都
田中20福岡県
後藤22愛知県

models.pyには2つの使いかたがある

  • models.py→views.pyにデータを渡すパターン
  • forms.py→models.py→views.pyにデータを渡すパターン

models.py→views.pyのパターン

もともと、入ってるデータを見せたい場合とか、他のサイトから情報をとってきて見せたい場合に使うパターンだよ。

このパターンを使うとき

  • 求人情報
  • 株式チャートの情報
  • 他サイトの数値データ

forms.py→models.py→views.pyのパターン

このパターンは、サイトに来てくれた人に対してなにか入力してもらってデータを保存したい場合に使うパターンだね。

このパターンを使うとき

  • 会員登録
  • アンケート
  • 個人情報の入力

ちなみに、forms.pyってなんだよ?って思ったら下記記事を見てね。

まとめ

  • models.pyは、データを入れる箱を作ったり、編集したりするファイル
  • 他サイトからデータを保存するパターン
  • サイトに来てくれた人からデータを保存するパターン

まとめると、models.pyは上記の感じだね。簡単に話してきたけど分かったかな?

これでデータをDjangoで保存するのは簡単にできるから、どんどんアプリケーション作ってみよう。

人気記事【必読】"見やすく修正しやすいコード"につながる本『リーダブルコード』