Day 5 Django for KN

김의석 ·2024년 1월 12일

Django

목록 보기
5/39

Django for KN(Koinonia)

  • 해당 문서는 사귐의 교회 청소년부 출석부 프로젝트를 위한 Django 학습 내용과 개발 과정을 기록함

1. 장고 모델 ORM(Obeject-relation mapping)

  • ORM은 DB Query를 위한 언어 SQL을 생성/실행한다.
    • ORM을 사용하더라도 어떤 SQL이 실행되고 있는지 파악하고 최적화할 수 있어야 한다. django-deburg-toolbar를 적극활용
  • 장고 ORM인 모델은 RDB만을 지원한다.
  • 데이터베이스 테이블파이썬 클래스1:1로 매핑
  • 모델활용순서(중요)
    • 모델 Class를 작성한다.
    • 모델 Class로부터 migration파일 생성
      python3 manage.py makemigrations [app_name]
    • migration 파일을 DB에 적용
      python3 manage.py migrate [app_name]
    • 모델 활용 및 sql migrate
      python3 manage.py sqlmigrate [app_name] 0001_initial # migrate 후 생성되는 테이블
  • 기본적인 모델의 테이블 이름
    • 기본 : app name_model name
    • 예시 : instagram app의 post라는 model인 경우 테이블 이름은 instagram_Post

2. 모델 필드

  • 모델필드들은 DB 필드타입을 반영
    • varchar 필드타입 = CharField, SlugField, URLField, EmailField 등
  • 파이썬 데이터타입과 데이터베이스 데이터타입을 mapping
    • AutoField = int
    • BinaryField = bytes
    • BooleanField = bool
    • CharField, SlugField, URLField, EmailField = str
      • 디폴트 적용된 유효성 검사에 차이가 있다.
      • url형식, email형식을 지켜 값이 작성 되었는가?
  • 자주 쓰는 필드 공통 옵션
    • blank : 장고 단에서 validation시에 empty 허용 여부(default : False)
    • validator : validation을 수행할 함수를 다수 지정
  • 설계한 데이터베이스 구조에 따라, 최대한 필드타입을 타이트하게 지정해주는 것이 입력값 오류를 막을수 있다.
profile
널리 이롭게

0개의 댓글