728x90
폼 전송
Flask
from flask import Flask, render_template, redirect, url_for, request
app = Flask(__name__)
@app.route('/')
@app.route('/index')
def index():
return render_template('index.html')
@app.route('/form_send')
def form_send():
return render_template('form_send.html')
@app.route('/form_recv', methods=['POST'])
def form_recv():
if request.method == 'POST':
data = request.form
else:
data = {}
return render_template('form_recv.html', data=data)
@app.errorhandler(404)
def page_not_found(error):
return render_template('page_not_found.html'), 404
if __name__ == '__main__':
app.run(debug=True)
HTML (form)
{% extends 'base.html' %}
{% block title %} Form 전송 테스트 {% endblock %}
{% block content %}
<form action="form_recv" method="post">
<p>이름 <input type="text" name="name" placeholder="이름 입력"></p>
<p>색깔 <input type="text" name="color" placeholder="색깔 입력"></p>
<p><input type="submit" value="submit"></p>
</form>
{% endblock %}
HTML (result)
{% extends 'base.html' %}
{% block title %} Form 전송 결과 {% endblock %}
{% block content %}
{% if data['name'] and data['color'] %}
<p>이름은 {{ data.name }} 이고 색깔은 {{ data.color }}</p>
{% endif %}
{% for k, v in data.items() %}
key: {{ k }}, value: {{ v }}
<br>
{% endfor %}
{% endblock %}
HTML 에서 폼 전송은 다음과 같이 나타내고 method=GET 또는 POST 로 전송할 수 있습니다.
<form action="form_recv" method="post">
<p>이름 <input type="text" name="name" placeholder="이름 입력"></p>
<p>색깔 <input type="text" name="color" placeholder="색깔 입력"></p>
<p><input type="submit" value="submit"></p>
</form>
Flask 에서 전달받은 데이터를 HTML 로 전달합니다.
methods=['POST'] 은 POST 만 허용합니다.
@app.route('/form_recv', methods=['POST'])
def form_recv():
if request.method == 'POST':
data = request.form
else:
data = {}
return render_template('form_recv.html', data=data)
전달받은 데이터는 딕셔너리형으로 접근합니다.
{% if data['name'] and data['color'] %}
<p>이름은 {{ data.name }} 이고 색깔은 {{ data.color }}</p>
{% endif %}
{% for k, v in data.items() %}
key: {{ k }}, value: {{ v }}
<br>
{% endfor %}
'Application > Flask' 카테고리의 다른 글
파이썬 Flask HTTP Request 파라미터 (0) | 2020.08.20 |
---|---|
파이썬 Flask 라우팅(route) 알아보기 (0) | 2020.08.20 |
파이썬 Flask render_template() 데이터 전달 / for 문 사용 (2) | 2020.07.29 |
파이썬 Flask 리다이렉트(Redirect)와 에러 페이지 (0) | 2020.07.29 |
파이썬 Flask 반응형 템플릿 구해서 고치기 -2 : 리소스 경로잡기(Static Files) (0) | 2020.07.29 |