본문으로 바로가기

 

 

HTML 로 데이터 전달

 

Flask

from flask import Flask, render_template, redirect, url_for

app = Flask(__name__)

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html')

@app.route('/review')
def review():
    return render_template('review.html')

@app.route('/test')
def test():
    color = 'red'
    colors = ['red', 'green', 'blue']
    blogger = {'name': 'jvvp', 'eloc': 'songpa'}

    return render_template('test.html', d1=color, d2=colors, d3=blogger)

@app.errorhandler(404)
def page_not_found(error):
    return render_template('page_not_found.html'), 404

if __name__ == '__main__':
    app.run(debug=True)

 

HTML

{% extends 'base.html' %}

{% block title %} 데이터 테스트 {% endblock %}

{% block content %}

color is {{ d1 }}
<br>

{% for c in d2 %}
{{ c }}
{% endfor %}
<br>

{% for k, v in d3.items() %}
key: {{ k }}, value: {{ v }}
<br>
{% endfor %}

{% endblock %}

 

다음 render_template() 함수에서 전달한 매개변수를 {{ }} 안에 넣어서 사용합니다. 

return render_template('test.html', d1=color, d2=colors, d3=blogger)

 

for 문{% for ~ %} {% endfor %} 로 나타내고 전달받은 변수는 마찬가지로 {{ }} 로 감싸줍니다. 

{% for ~ %} 안의 변수는 {{ }} 로 감싸지 않아도 됩니다.

{% for c in d2 %}
{{ c }}
{% endfor %}

 

딕셔너리 타입도 다음과 같이 사용합니다. 

{% for k, v in d3.items() %}
key: {{ k }}, value: {{ v }}
<br>
{% endfor %}