etc/[Python] Flask

[Flask] 파이썬으로 웹페이지 만들기 (4) 페이지 로그인 기능 만들기( 값 입력 및 출력)

코딩무민 2020. 12. 28. 18:47
반응형

[Flask] 파이썬으로 웹페이지 만들기 (1) 환경설정 및 기본 페이지 구성

[Flask] 파이썬으로 웹페이지 만들기 (2) Bootstrap 연동하기

[Flask] 파이썬으로 웹페이지 만들기 (3) URL Building(url_for)

[Flask] 파이썬으로 웹페이지 만들기 (4) 페이지 로그인 기능 만들기( 값 입력 및 출력)

[Flask] 파이썬으로 웹페이지 만들기 (5) 이미지 삽입하기

 

 

이제 페이지에 값을 입력하면 이를 변수로 받아 다른 페이지에 출력하는 과정을 해보려고 합니다.  

 

0. index.html에서 Icon Bar 수정 

Icon을 다음과 같이 바꿔주고, url_for() 를 통해 링크를 넣어줍니다.

</button> 아래 부분을 다음과 같이 수정해줍니다. 

<a class="navbar-brand" href="{{url_for('main.index') }}">Flask 예시 - 코딩무민</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li ><a href="{{url_for('main.index') }}">Home</a></li>
<li class="active"><a href="{{ url_for('main.login') }}">Login</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>

 

1. 값을 입력할 페이지를 만듭니다. (* login.html)

경로 : Project_Name/app/templates/main/login.html

 

앞서 만들어놓은 index.html을 그대로 복사해서 Template을 유지한 후, 아래 나와 있는 부분을 수정해줍니다. 

수정할 부분

<body> 에서 <div class ="container">

<div class="container">
<div class="starter-template">
<center>
<h1> Flask 예시 - 코딩무민</h1>
<h4>이름과 나이를 입력하세요.</h4>
<form method="post" action="/success">
<input type="text" name="Name" placeholder="이름을 입력하세요">
<br><br>
<input type="text" name="pass" placeholder="나이를 입력하세요">
<br><br>
<input type="submit" value="Submit" name="확인"/>
</form>
</center>
</div>
</div><!-- /.container -->

2. 값 입력 후 출력값을 받을 페이지를 만들어줍니다. (success.html) 

경로 : Project_Name/app/templates/main/success.html

 

마찬가지로 앞서 만들어놓은 index.html을 그대로 복사해서 Template을 유지한 후, 아래 나와 있는 부분을 수정해줍니다.

수정할 부분

<body> 에서 <div class ="container">

<div class="container">
<div class="starter-template">
<center><h4> {{ Name }}님의 나이는 {{ Age }} 입니다. <br>
만나서 반갑습니다.
</center>
</div><!-- /.container -->

{{ 변수 }} : 다음과 같이 변수를 넣어줍니다. 

3. index.py 수정 

index.py를 다음과 같이 수정해줍니다. 

from flask import Blueprint, request, render_template, flash, redirect, url_for
from flask import current_app as app
main = Blueprint('main', __name__, url_prefix='/')
@main.route('/main', methods = ['GET'])
def index():
return render_template('/main/index.html')
# 로그인 페이지 만들기
@main.route('/main/login', methods = ['GET'])
def login():
return render_template('/main/login.html')
# 로그인 성공후 페이지 만들기
@main.route('/success', methods=['POST'])
def success():
if request.method == 'POST':
# 변수 지정
Name = request.form['Name']
Age = request.form['Age']
return render_template('/main/success.html', Name=Name, Age = Age)
else:
pass

4. 결과 예시

login 창
결과 창

 

 

 

반응형