2019.05.07 인스타그램 클론 코딩하기(회원가입 기능 구현하기1)
인스타그램 만들기(17)
회원가입 기능 구현하기(5~6)
모델 폼을 통해 회원가입 기능 구현하기
- views를 통해 로직 구현하기
- POST형태로 받을 때와 처음 실행할 때 화면 구현
- render의 특징
- POST형태의 데이터 저장하기
- 템플릿 만들기
- url 연결하기
- 비밀번호 암호화하기
- forms.py를 구현하여 views.py를 간락햐게 만들기
- forms.py 오버라이딩하기
- views.py 간략히 수정하기
- 중복 입력 받기(commit=False)
- signup_complete에 회원가입한 사람 이름 띄어주기
- form을 통해 받은 자료 암호화하기
- set_password
- 비밀번호 재입력창 만들기
- 비밀번호 중복 확인하기
- 해로쿠를 통해 서버 배포하기
5. forms.py를 구현하여 views.py 간략하게 만들기
- forms.py 구현하기
- forms.py 생성
- class Meta를 활용해 입력 받을 필드들을 나열한다.
- password에 대해서는 입력시 **가 나오도록 하기 위해 커스터마이징 한다.
모델폼 일반 보기
- class Meta 활용
- 다 가지고 오려면 “__all__”
- 우리가 views.py에 만든 것은 signup.html에 추가되는 것이다.
- 따라서 우리가 만들어 준 것은 지워주면 된다.
- fields에는 해당 모델에 대해 입력 받을 필드들을 나열한다.
- 추가필드도 포함될 수 있다.
- 필드 목록과 추가 필드가 겹치면 오버라이드 한다.(password)
- 추가필드도 포함될 수 있다.
- fields에 써진 순서대로 출력된다.
- 이후에 해야 하는 것들
- 필드의 기본값 설정하기(상품 장바구니 기본값 1로 셋팅)
- placeholder 설정법
- css class 설정법
- Validator 설정법
- 커스텀 필드 만드는 법
- 헬프 텍스트 설정법 ( 이거는 나도 꼭 필요하다!! )
- views.py 간략하게 만들기(중복 저장 피하기)
- from .forms import SignUpForm을 가지고 온다.
- POST일 때 SignUpForm(request.POST)인 객체를 생성하고
- 그것이 유효하다면 user_instance에 signup_form을 저장한다.
- 하지만 아래에서 또 한번 저장이 있으므로 중복 저장을 피하기 위해 commit=False를 입력한다.
- set_password 및 cleaned_data를 통해 유효한 문자만 남긴 상태를 저장한다. 또한 암호화한다.
- render 뒤쪽에 {‘username’:user_instance.username’}을 넣어서 username이 나오도록 구현해준다.
6. 비밀번호 재입력창 만들기
- form 커스터마이징
- Repeat_password를 fields에 추가해 준뒤에 폼에 없는 field 이므로 커스터마이징해준다.
- clean_[필드명]을 통해 cleaned_data를 받아오고 이 받아온 데이터들 중 ‘password’와 ‘Repeat_password’를 확인하여서 일치 하지 않으면 에러 메시지를 전송한다.
- 일치하면 일반적으로 ‘Repeat_password’를 반환한다.