Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python】Djangoでのモデル定義 (models.py内でのモデル作成)


Django内でのモデル作成での備忘録になります。

 

models.py内でモデルを定義する時は、以下のような形で定義します。

 

models.py

from django.conf import settings
from django.db import models


"""武器データ"""
class Weapon(models.Model):
    name = models.CharField('武器名',blank=True, null=True,default="", max_length=50)
    attackPower  = models.IntegerField('攻撃力',blank=True, null=True,default=1000)
    defensePower  = models.IntegerField('防御力',blank=True, null=True,default=500)

    def __str__(self):

 

たとえば、Weaponというモデルを定義する時は、下記のように、

 

from django.db import models

 

と宣言し、

 

class Weapon(models.Model):

 

とすることで、Django標準のデータベースのモデルを使用したクラス宣言となります。

その中で、文字列型の変数を宣言する時は、

 

name = models.CharField('武器名',blank=True, null=True,default="", max_length=50)

 

のように先頭にmodels.CharFieldをつけて宣言します。

max_lengthは設定しないとエラーが発生します。

また、整数型の変数を宣言する時は、

 

attackPower  = models.IntegerField('攻撃力',blank=True, null=True,default=1000)

 

のように先頭にmodels.IntegerFieldをつけて宣言します。

このようにすることでDjangoの標準データベースに格納されます。

 

このように宣言した場合には、一度実行し該当モデルのデータ登録などを行った後に一旦ブラウザを閉じて開き直しなどしても中のデータは保存されています。

 

これを、同じような内容でも、models.CharField、models.IntegerFieldをつけずに以下のような形の宣言とした場合は、データ保存の状態が変わります。

自分でためした限りでは、モデルのデータ登録後、ブラウザを完全に閉じずに該当のhtml画面だけを一旦閉じて再度開いた場合はまだデータ保存されていましたが、ブラウザを一旦閉じて画面を開きなおすと前回登録したモデルのデータは消えていました。

 

models.py

from django.conf import settings
from django.db import models

class Weapon(models.Model):
    name = '勇者'
    attackPower = 1000

 

 

 

関係記事:

【Python】Djangoでのモデル定義 (models.py内でのモデル作成) - Django Girls and Boys 備忘録

 

【Python】Djangoのモデル(models.py)変更でのデータベースファイル更新手順 - Django Girls and Boys 備忘録

 

【Python】Djangoモデル(models.py)のviews.pyからの操作方法 - Django Girls and Boys 備忘録

 

【Python】Djangoのviews.pyとhtmlファイル、htmlファイルとurls.pyとの間の受け渡し例 - Django Girls and Boys 備忘録

 

【Python】Djangoでのhtml側からの指定とurlsでの記載方法 - Django Girls and Boys 備忘録