지금까지 한 작업:
0. (내가 이해한) Django의 기본 개념
1. Macbook air M1에 개발환경 setting(Django, Python설치)
2. Django 기본 프레임웍 익히기
3. localhost page에 "hello world"출력
4. Django admin page 및 DB 연동 + DB data web page에 보여주기
5. 웹페이지 만드는 플로우 + 회원가입 및 log in 기능 구현
오늘의 작업
6. Logout, Signup 기능 만들기
.
.
urlpatterns = [
path(route, view, kwargs = None, name = None)
]
path안에는 route, view가 들어가고 kwargs나 name을 넣을 수 있다.
*kwargs는 https://brunch.co.kr/@princox/180 요기 잘 설명되어 있으니 참고.
from django.urls import path
from . import views
urlpatterns = [
path('logout/', views.logout_view, name='logout'),
]
from django.contrib.auth import logout
def logout_view(request):
if request.method == "POST":
logout(request)
return render(request, "myapp/login.html")
def index(request):
latest_id_list = People.objects.order_by('-pub_date')[:5]
template = loader.get_template('my_app/index.html')
context = {
'latest_id_list': latest_id_list,
}
return HttpResponse(template.render(context, request))
{% if latest_id_list %}
<ul>
<h1>Here is People list</h1>
{% for people in latest_id_list %}
<li>{{ people.people_name }}</li>
{% endfor %}
</ul>
{% else %}
<p>No companies are registered.</p>
{% endif %}
이번에는 SignUp 기능을 만들어 보자.
기본적으로
1. signup 기능 등록 --> urlpatterns에 등록하고 views에 signup_view 만들기
2. id/pw/pw확인을 받아서 database에 입력 --> 기본 내장되어 있는 회원관리 기능사용
3. 회원가입 완료 후 어디론가 보내기
정도의 과정이 진행될 것이다. my_app/urls.py에 sign_up경로와 view를 등록하자
urlpatterns = [
path('login/', views.login_view, name='login'),
path('signup/', views.signup_view, name='signup')
]
def signup_view(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']
)
login(request, user)
return redirect('login')
else:
return render(request, "my_app/signup.html")
<head>
<meta charset="UTF-8">
<title>회원가입 페이지</title>
</head>
<body>
{% if user.is_authenticated %}
이미 로그인이 되어 있습니다!
<form action ="{% url 'logout' %}" method = "POST">
{% csrf_token %}
{{ user.username }} 님 환영합니다. <input type = "submit" value = "로그아웃">
</form>
{% else %}
회원가입 페이지
<form action = "{% url 'signup' %}" method="POST">
{% csrf_token %}
username:<input name = "username" type = "text">
<br>
password:<input name = "password1" type = "password">
<br>
password 확인:<input name = "password2" type = "password">
<br>
<input type = "submit" value = "회원가입">
</form>
{% endif %}
</body>
</html>