Python/Django

[Django-Memo] 9. 회원 가입

꼰대 2021. 6. 3. 17:11

마지막으로 계정생성에 대해 진행하겠습니다.

 

회원가입 역시 common app에 구현하겠습니다.

우선 common/urls.py에 views를 import하고 path를 지정합니다.

common/urls.py

 

계정 정보를 담을 UserForm을 생성합니다. 경로는 common/forms.py에 작성하며 django에서 제공하는 UserCreationform을 상속 받아 이메일 필드를 추가하여 작성합니다.

common/forms.py

 

 

만약 User 모델에 정의되어 있는 추가 필드 중 이름 (성, 이름)을 받고 싶다면 아래와 같이 form 필드를 추가합니다.

common/forms.py

 

 

다음으로 계정생성을 진행할 signup 함수를 common.views.py에 작성합니다.

단순 페이지 요청일 경우 form을 signup.html에 보내고 계정 생성을 위한 필드 입력 후 POST를 통한 요청을 받았을 때 form 데이터에 대한 is_valid()를 진행합니다.

이떄 빈칸 및 중복, 필드 길이 등을 확인하게 되고 이상이 없으면 데이터 저장 후 로그인 처리하여 memo:index 페이지로 redirect합니다.

common/views.py

 

다음으로 templates/common/signup.html 파일을 생성하여 아래와 같이 작성합니다.

templates/common/signup.html

 

 

서버 재부팅 후 sign up버튼을 클릭하면 아래와 같습니다.

 

 

 

간단하게 계정 생성을 구현하였습니다.

django에서 제공하는 사용자 관련 User Model만 쓴다면 계정 생성을 위한 정보가 한정적입니다.

좀 더 다양한 정보를 받는게 필요하다면 별도 생성하여 구현해야 합니다.

 

이제 가볍게 시작한 메모장 프로젝트는 모두 끝났습니다.

django를 처음 써보는 것이라 약간은 헷갈렸지만 가만히 생각해보면 기본적인 흐름은 어떤 환경이던지 비슷비슷한거 같습니다. (Flask도 잠깐 읽어 봤는데 비슷했습니다.)

요즘은 MVC 모델이라는 용어를 사용하는지 모르겠지만 이를 기반으로 한 프레임워크 (Struts, Spring, ibatis 등등) 들이 세상에 나와 주류가 되던 시절이 있었습니다.

django도 이와 동일한 구조인거 같습니다.

M : models.py

V : forms.py, templates/*.html

C : views.py

 

하나만 잘 해놓으면 다른것들 받아들이기는 쉽습니다.

하나라도 꾸준히... ㅎㅎ

반응형