최신글
hyeonga_code
파이선 웹구축_장고_15_계정 로그인 페이지 본문
반응형
- 계정_로그인 페이지
1. 로그인 페이지 생성 <config> > 'urls.py'
'urls.py'
=====
1
2
3
4
5
6
7
8
|
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('adm/', include('adm.urls')),
]
|
cs |
2. 경로 설정 <adm> > 'urls.py'
'urls.py'
=====
1
2
3
4
5
6
7
8
|
from django.urls import path, include
from . import views
urlpatterns = [
path('index/', views.index, name='index' ),
path('login/', views.ulogin, name="login"),
]
|
cs |
3. 함수 생성 <adm> > 'views.py'
'views.py'
=====
1
2
3
4
5
6
7
8
|
from django.shortcuts import render
def index(request):
return render(request, 'adm/index.html')
def ulogin(request):
return render(request, 'adm/login.html')
|
cs |
4. <config> > 'settings.py'
'settings.py'
=====
1
2
|
TEMPLATES = [ 'DIRS': [BASE_DIR/'templates'] ]
|
cs |
5. 메인 페이지 작성 <templates> > <adm> > 'index.html'
'index.html'
=====
1
2
3
|
<h1><b>MAIN PAGE</b></h1>
<br><br>
<a href="{% url 'login' %}"><button>Log in</button></a>
|
cs |
6. 로그인 페이지 <tmaplates> > <adm> > 'login.html'
'login.html'
=====
1
2
3
4
5
6
7
|
<h1><b>LOGIN PAGE</b></h1>
<br><br>
<input type="text" name='uname' placeholder='ID'><br><br>
<input type='password' name='userpwd' placeholder='password'><br><br>
<button>Login</button>
<a href="{% url 'index' %}"><button>Main</button></a>
|
cs |
>>> form 태그로 변경
=====
1
2
3
4
5
6
7
8
9
10
|
<h1><b>LOGIN PAGE</b></h1>
<br><br>
<form method='POST' enctype='multipart'>
{% csrf_token %}
<input type="text" name='uname' placeholder='ID'><br><br>
<input type='password' name='upass' placeholder='password'><br><br>
<button>Login</button>
<a href="{% url 'index' %}"><button type='button'>Main</button></a>
</form>
|
cs |
= 로그인 기능
7. 함수 설정 <adm> > 'views.py'
'views.py'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from django.shortcuts import render, redirects
from django.contrib.auth import authenticate, login, logout
def index(request):
return render(request, 'adm/index.html')
def ulogin(request):
if request.method=="POST":
un = request.POST.get('uname')
up = request.POST.get('upass')
u = authenticate(username=un, password=up)
if u :
login(request,u)
#_ 로그인 성공시 인증된 레코드 U를 입력하겠다.
return redirect('index')
return render(request, 'adm/login.html')
|
cs |
>> 실행 > 로그인
>> 메인 페이지로 넘어오면 로그인에 성공했다는 것
>> 실패할 경우, 계속 새로고침 화면이 됨
8. 로그인 성공 시 메인 화면에 환영 문구 <templates> > <adm> > 'index.html'
'index.html'
=====
1
2
3
4
5
6
|
<h1><b>MAIN PAGE</b></h1>
<br><br>
<b>{{ request.user }}</b> Welcome!! <br><br>
#_ request 생략 가능
<a href="{% url 'login' %}"><button>Log in</button></a>
|
cs |
반응형
'Python_Django' 카테고리의 다른 글
파이선 웹구축_장고_17_계정 프로필 페이지 (0) | 2023.06.09 |
---|---|
파이선 웹구축_장고_16_계정 로그아웃 페이지 (0) | 2023.06.08 |
파이선 웹구축_장고_14_테이블 이미지 업로드 (0) | 2023.06.06 |
파이선 웹구축_장고_13_테이블 데이터 삭제 (0) | 2023.06.05 |
파이선 웹구축_장고_12_테이블 데이터 추가 (0) | 2023.06.04 |