hyeonga_code

파이선 웹구축_장고_15_계정 로그인 페이지 본문

Python_Django

파이선 웹구축_장고_15_계정 로그인 페이지

hyeonga 2023. 6. 7. 05:59
반응형

- 계정_로그인 페이지

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

 

반응형