본문 바로가기
○ WEB/21.02 CodeLion_Django Web

[장고 실전3] 7. 커뮤니티 : 회원가입

by 0ver-grow 2021. 4. 6.
반응형

 

위 버튼을 눌렀을 때의 기능을 구현하자

 

accounts 앱 > login.html

 

 

프로젝트 > urls.py

 

 

accounts 앱 > views.py

가입 기능 함수

 

 

메인앱 > 템플릿 > registe.html

 

static로드하고 JS,CSS 파일은 static 폴더 루트로 설정

 

다음 화면을 표시한 것처럼 수정하자

 

아이디 입력을 이메일에서 텍스트로 수정
로그인 페이지로 이동하도록 url 수정
실행화면

 

메인앱 > register.html

사용자의 입력값을 받는 방식은 3가지 

1. html태그

2. django form

3. django model form

 

지금까지 form은 django model form으로 구현했으나

이번에는 html태그로 구현.

 

 

<form class="user" method="POST">
                                {% csrf_token %}
                                <div class="form-group">
                                    <input type="text" name="username" class="form-control form-control-user" id="exampleInputEmail"
                                        placeholder="Enter Your ID">
                                </div>
                                <div class="form-group row">
                                    <div class="col-sm-6 mb-3 mb-sm-0">
                                        <input type="password" name="password" class="form-control form-control-user"
                                            id="exampleInputPassword" placeholder="Password">
                                    </div>
                                    <div class="col-sm-6">
                                        <input type="password" name="repeat" class="form-control form-control-user"
                                            id="exampleRepeatPassword" placeholder="Repeat Password">
                                    </div>
                                </div>
                                <br/>
                                <br/>
                                <br/>
                                <input type="submit" class="btn btn-primary btn-user btn-block" value="회원가입">
                            </form>

 

비번이 동일한 경우 가입 가능하도록 함수를 만들자

 

accounts 앱 > views.py

from ~ User 가져옴 유저객체에 데이터를 추가하므로 

enw_user 새로운 유저 객체 만들기

 

 

# 가입
def signup(request):
    if request.method == "POST":
        if request.POST['password'] == request.POST['repeat']:
            # 회원가입 새로운 유저 객체 만들기
            new_user = User.objects.create_user(username=request.POST['username'], password=request.POST['password'])
            # 로그인
            auth.login(request, new_user)
            # 홈 리다이렉션
            return redirect('home')
    return render(request, 'register.html')

 

반응형