Django Models

이상해씨·2023년 7월 4일
0

장고 (Django)

목록 보기
10/38
post-custom-banner

Django Model

  • 데이터베이스의 테이블을 의미
  • ORM을 통해 테이블을 클래스로 정의(Table column - class Variable)
  • 여러 DB와의 호환가능
    (postgresql과 django 연동하기)
  • 기본적으로 SQLite를 지원

💡 ORM(Odject Relational Mapping)

  • 객체- 관계형 데이터베이스(RDMS)를 연결해주는 것
  • 모델 클래스와 DB에 생성된 테이블을 자동으로 연관지어 주는 기술

  • DB를 직접 조작할 필요 없이 모델 클래스의 python 문법을 통해서 DB를 조작할 수 있는 기술
  • 객체 지향 프로그래밍이 사용하는 클래스, 관계형 데이터베이스에서 사용하는 테이블 모델간의 불일치를 자동으로 SQL을 이용하여 해결

Django의 기본 DB, SQLite

  • django는 기본적으로 SQLite 데이터베이스를 지원한다.
  • root 폴더에 생성되며, 이름은 db.sqlite3
  • 기본적으로 model들은 이 DB에서 table로 생성이 됨

Model 개발하기

1. 테이블 생성(모델)

  • class <테이블명>
  • <APP이름>/ models.py
from django.db import models

class <테이블명>(models.Model):
  firstname = models.CharField(max_length=255)
  lastname = models.CharField(max_length=255)

위는 w3school의 예시코드로 각 변수가 나타내는 것은 아래와 같다.

firstname : 텍스트 필드, 구성원의 이름, 최대 225 자
lastname : 텍스트 필등, 구성원의 성, 최대 225자

2. migration

2-1) migrations

  • Model의 변경사항을 기록하는 역할
  • 설정한 모델을 DB에서 실제 테이블로 생성하는 명령 실행하기위한 첫단계
  • 변경사항을 저장하는 곳
py manage.py makemigrations <APP이름>
py manage.py makemigrations members
  • 성공한 모습

  • django의 프로세스는 /migrations/0001_initial.py에 변경사항을 저장한다.

2-2) migrate 명령어

  • migrations에 기록된 파일과 설정값을 읽어 db에 변경사항을 저장하는 역할
  • 저장소에 있는 변경사항을 적용하는 단계
py manage.py migrate

참고

profile
공부에는 끝이 없다
post-custom-banner

0개의 댓글