Django의 모델 데이터베이스 요약 (1)

3911 단어
일반적으로 하나의 모델은 데이터베이스 테이블과 연결된다.
1. 모델 베이스:
  • 모델마다django.db.models.Model의 서브python 클래스
  • 모든 모델의 속성은 데이터베이스 필드, 즉 데이터베이스의 한 열을 대표한다.
  • Django는 데이터베이스 액세스 인터페이스를 자동으로 생성합니다
  • .
    from django.db import models
    class Person(models.Model):
      first_name = models.CharField(max_length=30)
      last_name = models.CharField(max_length=30)
    

    참고 사항:
  • 테이블 이름이 지정되지 않으면 모델의 메타데이터에서 자동으로 유래되며 위의 예는 myapp입니다.person.
  • 자동으로 id 필드를 추가하지만, 이러한 행위는 덮어쓸 수 있습니다. 즉, 메인 키를 설정할 수 있습니다.
  • manage.py migrate, 명령을 실행하기 전에 INSTALLEDAPPS 설정에서그럼요. manage.py makemigrations 명령은 선택할 수 있습니다.
    2. Field
    모델의 가장 중요한 부분이자 모델의 필수적인 부분은 일련의 필드의 정의이다.참고: 모델의 각 필드는 적절한 Field 클래스 인스턴스여야 합니다.django는 필드 클래스의 유형으로 내용을 결정합니다.
    1. 열의 유형은 데이터베이스에 어떤 유형의 데이터를 저장해야 하는지 알려준다.폼 필드를 렌더링할 때 사용하는 기본 html 구성 요소입니다.3. django admin과 자동 생성form에 사용되는 가장 낮은 검증 수요.
    필드마다 특정한 매개 변수가 필요합니다. 예를 들어CharField 필드의 maxlength 매개 변수는 데이터베이스 필드의 저장 데이터 크기를 지정하는 데 필수적입니다.또한 다음과 같이 선택할 수 있는 매개변수도 있습니다.
  • null, 값은 True or False입니다.기본값은 False이며 True인 경우 django는 데이터베이스에 빈 값, 즉 null을 저장합니다.
  • Black, 값은 True or False이고 기본값은 False이며 True일 경우 필드가 비어 있으면 값을 입력하지 않습니다.
  • choices,form 필드의 선택 항목에 사용되는 이원조의 교체기입니다.값이 있으면 기본적으로form 폼 구성 요소는 밑에 있는 선택 상자입니다.choices 형식은 다음과 같습니다:
  • YEAR_IN_SCHOOL_CHOICES = (
       ('FR', 'Freshman'),
      ('SO', 'Sophomore'),
      ('JR', 'Junior'),
      ('SR', 'Senior'),
      ('GR', 'Graduate'),
    )
    

    원조 원조 중의 원조 첫 번째 요소는 데이터베이스에 저장할 값이고 두 번째 요소는 폼 구성 요소에 나타난다.모델 실례를 지정하면choices 필드의 전시값은 get 을 통해FOO_method () 방법으로 접근합니다.예를 들면 다음과 같습니다.
    from django.db import models
    class Person(models.Model):
      SHIRT_SIZES = (
        ('S', 'Small'),
        ('M', 'Medium'),
        ('L', 'Large'),
      )
      name = models.CharField(max_length=60)
      shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)
    
    >>> p = Person(name="Fred Flintstone", shirt_size="L")
    >>> p.save()
    >>> p.shirt_size
    'L'
    >>> p.get_shirt_size_display()
    'Large'
    
  • default, 필드의 기본값은 하나의 값일 수도 있고 호출 가능한 대상일 수도 있습니다.
  • help_text, 폼 구성 요소에 대한 추가 도움말 정보
  • primary_키, True로 설정하면 모델의 키가 됩니다.특정 필드를 지정하지 않으면 primary키 속성,django는 id 필드를 추가합니다. 단, 어떤 필드의primary 를 지정하면키의 값이 True이면 이 필드는 읽기 전용이 됩니다. 이 필드의 값을 바꾸고 저장하면 새로운 클래스가 생성됩니다.예:
  • from django.db import models
    class Fruit(models.Model):
      name = models.CharField(max_length=100, primary_key=True)
    
    >>> fruit = Fruit.objects.create(name='Apple')
    >>> fruit.name = 'Pear'
    >>> fruit.save()
    >>> Fruit.objects.values_list('name', flat=True)
    ['Apple', 'Pear']
    
  • unique 값이 True이면 이 필드의 값은 전체 테이블에서 유일해야 합니다.
  • Verbose field names, 필드마다 Foreign Key, Many ToMany Field, One ToOne Field를 제외하고는 선택할 수 있는 첫 번째 위치 매개 변수를 받아들일 수 있습니다. 바로verbose name입니다.verbose name을 지정하지 않으면,django는 자동으로 그것을 만들고, 필드의 속성 이름을 사용하여 밑줄을 빈칸으로 변환합니다.예를 들어 first_name = models.CharField("person's first name", max_length=30) 이 필드의verbosename은person's first namefirst_name = models.CharField(max_length=30)이고 이 필드의verbosename은first nameForeignKey,ManyToManyField와OneToOneField는 첫 번째 파라미터가 모델류이기 때문에verbosename 키워드 매개 변수로 verbose name을 지정합니다.
  • poll = models.ForeignKey(
       Poll,
       on_delete=models.CASCADE,
         verbose_name="the related poll",
       )
    sites = models.ManyToManyField(Site, verbose_name="list of sites")
    place = models.OneToOneField(
       Place,
       on_delete=models.CASCADE,
          verbose_name="related place",
       )
    

    좋은 웹페이지 즐겨찾기