파이썬(Python)/Flask

파이썬 Flask 기능 정리 - render_template, jinja2

끄적끄적아무거나 2021. 1. 29. 10:26
반응형

참조 링크 (link)>>

flask.palletsprojects.com/en/1.1.x/quickstart/

 


 

Python flask에서 HTML과 변수 주고 받기


 

파이썬에서 HTML을 만들고 변경하는 것은 쉬운 작업이 아니다. application 보안을 위해 동적으로 바뀌는  값을 escape 처리 해서 작성해야하기 때문이다. 

 

Flask에서 jinja2 엔진을 공급한다. 간단하게 render_template 함수로  html 에 접근하면서 원하는 변수도 같이 보내 줄 수 있다. html 문서에서는 받은 변수 값을 {% %} {{ }} 괄호 안에서 사용 전자는 문법용이고 후자는 변수를 바로 사용할때 사용한다. 이렇게 사용이 가능하게 해주는 것을 jinja2 엔진이 가능하게 해주는 것이다. 

 

아래 예제 코드를 보면 쉽게 이해할 수 있다. 

 

코드>>

from flask import *

#########################################################
# Flask 선언
app = Flask(__name__, template_folder="templates")

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)


if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True, port=9999)
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello, World!</h1>
{% endif %}

페이지에 접근할 때 <name> 변수 값을 넣으면 변수 값이 render_template를 타고 다시 HTML로 넘어 간다. 

 

결과>>

 

 

반응형