flask에서지원하는 jinja는 서버사이드 렌더링이다..
변수 받기
<body>
<h1>메인페이지</h1>
<a href="/detail"> 상세페이지로</a>
<h3>{{name}} 아 안녕</h3>
</body>
위의 문법에서 {{ }} 안에 들어가는 변수가 서버에서 받아온 변수이다.
return render_template( '~', name = name) 이런식으로하면 name에 원하는 값을 실어서 프론트쪽으로 넘길 수 있다 .
for문
{% for row in rows %}
{% set gu_name = row['MSRSTE_NM'] %}
{% set gu_mise = row['IDEX_MVL'] %}
{% if gu_mise >= 60 %}
<li>{{gu_name }} : {{ gu_mise|int }}</li>
{% endfor %}
flask에서 rows를 넘겨주었다면 일반적인 반복문과 동일하되 {% %}로 감싸주면된다 밑에는 endfor를 넣어주고..
또한 변수 선언도 set으로 하면되는 것같다..
쿼리 파라미터로 받기
@app.route('/detail/<keyword>')
def detail(keyword):
r = requests.get(f"https://owlbot.info/api/v4/dictionary/{keyword}", headers={"Authorization": "Token 752b6bd50dae3f198c227e1667ac5ca66a5c9560"})
result = r.json()
위의 형태에서 /뒤에 <>로 변수 선언을 한 뒤 url 위치에 {}안에 해당 변수를 넣으면 바로 입력이된다.
신기하네 스프링의 path variable 같은건가?
이스케이프문
html인데 그것을 보여주고싶을때도 있고 그것을 태그가 아닌 텍스트로 보여주고싶을때가 있다.
그럴때 html로 보여주고싶을때 이스케이프 처리를 해서 그것은 파이썬 코드가 아니라는 것을 알려주어야한다
ex : {{ "abc {ef} ght" }} 이런식으로 가능하다