Djangoのmodelsセクション

2912 ワード

概要
modelsは、データベース・テーブルを作成するために使用されます.作成後、次のコマンドを実行してデータを移行します.
python manage.py makemigrations
python manage.py migrate

フィールド
一つのモデルの構造は大体次の通りです.
from django.db import models
class test(models.Model):
    a1 = models.AutoField(primary_key=True)
    a2 = models.CharField(max_length=100)

このうちAutoField CharFieldは、データベースに格納されているデータのタイプを定義するフィールドです.
djangoには豊富なフィールドがあります. IP URL UUID種類以上のサポート
djangoのドキュメントでは、より具体的な内容「Model field reference|Django documentation|Django」を参照できます.
パラメータ
上記の例のprimary_key=True max_length=100は、フィールドを制限するパラメータである.
1.null=True           
2.blank=True django   admin         
3.YEAR_IN_SCHOOL_CHOICES = (
    ('FR', 'Freshman'),
    ('SO', 'Sophomore'),
    ('JR', 'Junior'),
    ('SR', 'Senior'),
    ('GR', 'Graduate'),
)
example = models.CharField(choice = YEAR_IN_SCHOOL_CHOICES)   
4.default = 0     0
5.primary_key = True   
6.unique = True      

これらはただの例ですが、より多くの説明はドキュメントを参照してください.filed optionsセクション「Models|Django documentation|Django」
表間関係
データ・テーブル間には、次の関係があります.
   :models.ForeignKey(   )
   :models.ManyToManyField(   )
   :models.ManyToManyField(   )

作成上は以前とあまり変わらないので、例を挙げます.
class people(models.Model):
    name = models.CharField(max_length=100)
    age = models.models.IntegerField()
    
class boy(models.Model):
    n = models.ForeignKey(people)

データ操作
from .models import *
# 
people.objects.get_or_create(name="1")
# 
people.objects.all().delete()
# 
people.objects.filter(name="1").update(name="2")
# 
people.objects.get(name="1") #    
people.objects.filter(name="1") #    ,      (      )
#    
a = people.objects.filter(name="1")
len(a)
people.objects.filter(name="1").count()
#  
people.objects.filter(age__range=[0,100])
#  
people.objects.filter(name__contains="1")
#  
people.objects.all().order_by('-age') #      ,           
#  
startswith istartswith endswith iendswith

管理
対応するフォルダのadmin.pyでコンテンツを編集すると、管理インタフェースでデータを管理できます.
from django.contrib import admin

# Register your models here.

from  import models

admin.site.register(models.people)

xxx objectsが表示されている場合は、データの理解を容易にすることができます.
class test(models.Model):
    #python2
    def __unicode__(self):
        return self.name
    #python3
    def __str__(self):
        return self.name

まとめ
djangoのドキュメントはとてもそろっていて、上も私自身の学習上の整理にすぎません.
参照先:
Django documentation | Django documentation | Django
Djangoでのページ管理バックグラウンド