티스토리 뷰
반응형
Flask는 몇 줄의 코드만으로 간단하게 HTML FORM 데이터 송수신을 할 수 있다.
파일명 : 8_sending_form_data.py
# form 데이터를 송수신하기 위해서는 request 를 import 해야한다.
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def student():
# ROOT URL 로 접근했을 때 8_sending_form_data.html 을 렌더링한다.
return render_template('8_sending_form_data.html')
@app.route('/result',methods = ['POST', 'GET'])
def result():
# result URL 로 접근했을 때, form 데이터는 request 객체를 이용해 전달받고
# 이를 다시 8_sending_form_data_result.html 렌더링하면서 넘겨준다.
if request.method == 'POST':
result = request.form
return render_template("8_sending_form_data_result.html",result = result)
if __name__ == '__main__':
app.run(debug = True)
파일명 : 8_sending_form_data.html
<html>
<body>
<form action = "http://127.0.0.1:5000/result" method = "POST">
<p>Name <input type = "text" name = "Name" /></p>
<p>Physics <input type = "text" name = "Physics" /></p>
<p>Chemistry <input type = "text" name = "chemistry" /></p>
<p>Maths <input type ="text" name = "Mathematics" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
ROOT URL 로 접근하면 student() 함수가 호출되는데, 이 함수는 render_template() 메소드를 통해 8_sending_form_data.html 을 웹브라우저에 렌더링한다. 8_sending_form_data.html 은 네 개의 text 입력상자와 한 개의 submit 버튼으로 구성되어 있는데 submit 버튼을 클릭하면 http://127.0.0.1:5000/result 로 이동한다. 데코레이터에 의해 result() 함수가 호출되고, 이 함수는 html form 데이터를 request 객체를 통해 수신한다. (form 데이터는 request 객체의 form 속성에 담겨 있다.) 그리고 다시 result 라는 이름의 객체에 값을 담아 8_sending_form_data_result.html 에 전달한다.
파일명 : 8_sending_form_data_result.html
<!doctype html>
<html>
<body>
<table border = 1>
{% for key, value in result.items() %}
<tr>
<th> {{ key }} </th>
<td> {{ value }} </td>
</tr>
{% endfor %}
</table>
</body>
</html>
form 데이터는 반복문을 통해 화면에 출력된다.
반응형
'IT > Flask' 카테고리의 다른 글
[Flask] 세션 (Sessions) (0) | 2020.08.12 |
---|---|
[Flask] 쿠키 (Cookies) (0) | 2020.08.12 |
[Flask] 정적 파일 (Static file) (0) | 2019.04.18 |
[Flask] 템플릿 보여주기 (Template Rendering) (0) | 2019.04.16 |
[Flask] HTTP 메소드 (HTTP Method) (0) | 2019.04.16 |
댓글
공지사항