Django 게시판 만들기 (5) - 회원가입 구현 본문
- 회원가입 템플릿 생성
- base.html에서 navbar 회원가입 링크 수정
-
더보기
<a class="nav-link" href="{% url 'accounts:signup' %}">회원가입</a>
-
- signup.html 작성
-
더보기
{% extends "base.html" %} {% block content %} <div class="container my-3 "> <form method="post" action="{% url 'accounts:signup' %}"> {% csrf_token %} {% include "form_errors.html" %} <div class="wrapper " > <h1 class="text-center">회원가입</h1> <form method="POST"> {% csrf_token %} 아이디 <input name="username" type="text" class="form-control my-3 "> <br> 비밀번호 <input name="password1" type="password" class="form-control my-3"> <br> 비밀번호 확인 <input name="password2" type="password" class="form-control my-3"> <br> 이메일 <input name="email" type="email" class="form-control my-3"> <button type="submit" class="btn btn-primary my-3">회원가입</button> </form> </div> </form> </div> {% endblock %}
-
- accounts/urls.py에 url 매핑 작성
-
더보기
path('signup/', views.signup, name='signup'),
-
- accounts/views.py에 signup 함수 작성
-
더보기
from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login from django.contrib.auth.models import User from django.contrib import auth # Create your views here. def signup(request): if request.method == 'POST': if request.POST['password1'] == request.POST['password2']: user = User.objects.create_user( username=request.POST['username'], password=request.POST['password1'], email=request.POST['email'], ) user = authenticate(username=user.username, password=user.password) # 사용자 인증 login(request, user) return redirect('/') return render(request, 'accounts/signup.html') return render(request, 'accounts/signup.html')
-
- base.html에서 navbar 회원가입 링크 수정
- 로그인 시 navbar 바뀌도록 수정
-
더보기
{% if user.is_authenticated %} <a class="navbar-brand" href="{% url 'board:index' %}">감정통</a> <span id="user_name" class="text-white">{{ user.username }}님 환영합니다! </span> {% else %} <a class="navbar-brand" href="{% url 'board:index' %}">감정통 </a> {% endif %} <li class="nav-item "> {% if user.is_authenticated %} <a class="nav-link" href="{% url 'accounts:logout' %}">로그아웃</a> {% else %} <a class="nav-link" href="{% url 'accounts:login' %}">로그인</a> <li class="nav-item "> <a class="nav-link" href="{% url 'accounts:signup' %}">회원가입</a> </li> {% endif %} </li>
-
- 글쓰기, 수정, 삭제 할 때 로그인 필수로 수정 - 데코레이터 이용
-
더보기
from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def my_view(request):
-
회원가입 기능은 작성했지만 비밀번호를 다르게 입력할 시 메세지처리가 안되었고, post모델에 자겅자도 외래키로 추가하는 방법을 알아보자.
네비게이션 바에서 로그인/로그아웃/회원가입/마이페이지를 전체화면 시 우측정렬로 수정을 해보고 싶다.
'Programming > django' 카테고리의 다른 글
Django 게시판 만들기 (4) - 글 수정/삭제 하기, 로그인 구현 (0) | 2022.04.03 |
---|---|
Django 게시판 만들기 (3) - bootstrap 적용 (0) | 2022.04.01 |
Django 게시판 만들기 (2) - django mysql 연동 (0) | 2022.03.31 |
Django 게시판 만들기 (1) - 개발환경 구축(가상환경, 장고 설치) (0) | 2022.03.31 |
Comments