KT 에이블스쿨 71일차(1)

박기범·2023년 5월 12일
0

에이블스쿨

목록 보기
78/95
post-custom-banner

오늘은 장고3일차로 ORM과 모델에 대해 배웠습니다.



장고의 ORM

어제에 이어 추가로 작성하겠습니다.

▶장고에서 shell 사용하는 방법

Django Shell 사용하는 방법의 순서는 아래와 같습니다.

    1. django-extensions 라이브러리 설치합니다.
    1. settings.py에 INSTALLED_APPS 등록합니다.
    1. shell_plus 에 진입해서 코드를 사용합니다.

ORM을 사용하면 얻는 이득

  • 생산성, 가독성, 유지보수의 편의성 증가합니다.
  • DBMS에 대한 의존도가 낮아집니다.
  • 보안 강화에 좋습니다.



장고의 Model

모델은 데이터베이스와 소통하는 역할을 진행합니다.
models.py와 만들고자 하는 데이터베이스의 설정을 작성하고 터미널에
python manage.py makemigrations blog
을 하게 되면 migration폴더 안에 새로운 init.py 파일이 생기게 됩니다.
python manage.py migrate blog
을 다시 작성해주면 DB에 설정해둔 데이터베이스가 생성이 됩니다.
즉, 변경사항이 적용된 것입니다.

관리자 페이지에서 등록하고자 하면 admin.py에 아래와 같이 작성해줍니다.

from . import models
admin.site.register(models.Post)

Django Model - Field 종류

  • CharField: 문자열 필드. max_length로 최대 길이를 지정.
  • TextField: 긴 텍스트 필드. 최대 길이를 지정할 필요 없음.
  • IntegerField: 정수 값 필드.
  • DateField: 날짜 필드. auto_now_add, auto_now를 사용하여 현재 날짜 자동 저장.
  • ForeignKey: 관계형 필드. 일대다 관계 형성. 연결하려는 모델을 매개 변수로 받음.
  • ManyToManyField: 관계형 필드. 다대다 관계를 형성. 연결하려는 모델을 매개
    변수로 받음



ORM QuerySet

ORM QuerySet을 통해 데이터를 조회할 수 있습니다.
사용 가능한 ORM Query문은 링크 첨부하겠습니다.
https://docs.djangoproject.com/en/4.2/ref/models/querysets/#field-lookups



장고의 Form

Form은 같은 작업을 바복해서 적은 코드로 쉽게 처리하기 위해 만들어졌습니다.
Form을 사용하는 이유는 사용자 입력을 처리하는 쉬운 방법이고 유효성 검사와 에러 메시지까지 알아서 처리 해주기 때문입니다. 또한 CSRF 토큰으로 웹사이트를 보호하고 데이터 저장까지 간단하게 이뤄집니다.

장고 Form VS 모델 Form

모델과 관련된 Form은 Model Form을 사용해야합니다. Model Form은 모델과 연동해서 데이터베이스까지 한번에 처리가 가능합니다. 장고의 Form은 위 설명과 같이 유효성 검사와 Model로 쉽게 데이터를 전달할 때 사용됩니다.

Form의 사용방법

  • HTML Form + ORM
  • Form + ORM
  • ModelForm
    위와 같이 사용할 수 있습니다.







오늘은 어제에 이어 장고를 배웠습니다. 이제 정말 끝이 다가옵니다. ㅠㅠ




※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.

profile
개발자가 되기 위한 한걸음
post-custom-banner

0개의 댓글