웹페이지(HTML)를 파이썬 flask로 만들기

3. 웹페이지(HTML)를 파이썬 flask로 만들기

  • flask는 flask 프로그래밍 로직에 따라 HTML 태그를 만들거나, HTML 내용을 채우기 위해 Jinja2 템플릿 엔진을 사용할 수 있음

html template with Jinja2 template engine

  • jinja2 engine을 사용하여 템플릿을 만들고 템플릿안의 값을 채워서 렌더링

1. {{ }} 일반 값 (Pycharm: 04_flask_practices/variable_html.py)

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/hello/')
def hello_name(user):
   return render_template('variable.html', name=user)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port="8080")
  • variable.html




    
    Title


      

Hello {{ name }}!

2. {% for %} {% endfor %} 반복문 (Pycharm: 04_flask_practices/loop_html.py)

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/hello_loop')
def hello_name():
    value_list = ['list1', 'list2', 'list3']
    return render_template('loop.html', values=value_list)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port="8080")



    
        Loop
    
    
        
    {% for value in values %}
  • {{ value }}
  • {% endfor %}

3. {% if %} {% elif %} {% else %} {% endif %} 조건문

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/hello_if')
def hello_html():
    value = 20
    return render_template('condition.html', data=value)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="8080")




    
    Title


    
{% if data >= 30 %}

Greater than 30

{% elif data > 25 %}

Greater than 25

{% else %}

{{ data }}

{% endif %}

4. 주석





    
    Title


    
{% if data >= 30 %}

Greater than 30

{# {% elif data > 25 %}

Greater than 25

{% else %}

{{ data }}

#} {% endif %}

크롤링 데이터를 그대로 뿌려보면!

from flask import Flask 
import requests

app = Flask(__name__)   

@app.route("/google")
def get_google():
    response = requests.get("http://www.google.co.kr")
    return response.text 

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="8080")