작정하고 장고 20강 - Class Based View, 장고의 CRUD : Django로 Pinterest 따라하기!

IkSun·2023년 4월 5일

작정하고 장고

목록 보기
20/46

hello world 라는 함수를 만들어서 이 함수에서 요청을 받아서 reponse 를 되돌려주는 구조를 이해하고 실제로 구축을 했다.

form 에서 input text 가 들어오고 그것을 hello world 가 받아서 DB 에다가 저장하고, 데이터 베이스에서 읽어서 html 으로 output 을 내보냈다

form 에서 hello world 로 요청을 보내는데 아무나 보낼 수 있다는 것이다.

가상 서버를 올려서 실제 서버에 이런식으로 올린다 하면 아무나 글을 쓸 수 있는 것이다.

글을 쓰는 것에 대한 제한 사항이 없는 것

따라서 인증 시스템을 구축할 거 ㅅ이다.

계정 이라는 객체가 필요하다.

원래는 Account App 을 만들기 위해 hello world 라는 앱을 만들었던 것인데
우리가 지금까지는 튜토리얼에 대한 것들이 우리가 Account App 으로 다시 수정하고 Accoutn app 에 대한 함수들을 만들어줄것이다

Account App 에 관한 함수

1) 사이트 계정 가입 - 로그인 기능 추가
2) 계정을 만든사람 본인의 정보들을 볼 수 있도록
3) 비밀번호 변경 등 정보 변경이 가능하도록
4) 계정 탈퇴

account app 을 만들기 이전에 jango 복습

CRUD

장고는 CRUD 에 관한 생산성이 매우 뛰어나다.

왜 CRUD 로 유명한지?

CRUD 에 대한 view 를 따로 제공을 해준다.
CRUD 의 4가지 작업들을 쉽게 할 수 있는 클래스를 제공해주는데 그 이름들이 다음과 같이

  • Createview
  • Readview
  • Updateview
  • Deleteview

이러한 CBV(Class Based View) 를 장고에서 제공을 해준다.


CBV 와 반대되는 FBV(Function Based Veiw) 는 함수 기반의 뷰
지금까지 만들었던 hello World 라는 함수가 바로 이에 해당.

우리가 만든 소스코드를 확인해보면 POST 를 받으면 그 안에서 hello world input 이라는 데이터를 가져온 다음에 그것을 HelloWorld 라고 하는 새로운 객체를 만들고 그 안에 데이터를 넣어주고 저장하고 다시 리턴해주는 형식이다.

  • CBV 를 모르고 소스코드를 작성하면 매우 길어진다.

CreateView 가 장고에서 기본적으로 제공해주는 클래스이다. 그래서 이것을 상속 받아서 새로운 view 를 만들것이다 또한 그 view 에 들어가는 parameter 몇개만 지정해주면 나머지는 장고가 알아서 해준다.

어떤 모델을 쓸것이고 만들것인지 지정
만드는데 필요한 form 은 무엇인지
만들었을 떄 성공했다면 어느 경로로 다시 되돌아갈것인지
어떤 template 을 사용해서 이 내용을 구현할 것인지

CBV 장점

  • 생산성 향상
  • 시간 복잡도는 감소

CRUD 는 거의 대부분 이 4개의 사이클 안에 들어간다.

기존의 우리가 작성했던 hello world 를 CBV 를 통해서 제대로 만들어볼 것이다,

제일 처음 만들것은 다음 4가지

profile
공부한 것 기록용

0개의 댓글