๋ฌธ์์ ์ํ(template)๊ณผ data๋ฅผ ํฉ์ณ ์๋ก์ด document๋ฅผ ๋ง๋ค์ด ๋ด๋ software.
์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก client๊ฐ ์์ฒญํ ๋ฐ์ดํฐ๋ ํ์ผ์ ์ ๋ฌํด์ค๋ค. ์ฌ๊ธฐ์๋ ์นํ์ด์ง๋ ํด๋น๋๋ค.
์๋ฅผ ๋ค์ด ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๊ฐ ์๊ณ , ๊ฐ ์ฌ์ฉ์์๊ฒ ์ฌ์ฉ์์ ์ด๋ฆ๋ง ๋ค๋ฅด๊ณ ๋์ผํ ๋ด์ฉ์ ์นํ์ด์ง๋ฅผ ์ ๋ฌํ๋ค๊ณ ๊ฐ์ ํ์. ๊ทธ๋ ๋ค๋ฉด ์ฌ์ฉ์์ ์ด๋ฆ๋ง ๋ค๋ฅธ ํ์ด์ง๋ฅผ ์ฌ์ฉ์์ ์ ๋งํผ ๋ง๋ค์ด๋์์ผํ ๊ฒ์ด๋ค. ํ์ง๋ง template engine์ ์ด์ฉํ๋ค๋ฉด, ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ํ์ผ 1๊ฐ๋ก ํด๊ฒฐํ ์ ์๋ค.
Jinja๋ python server framework์ธ flask์ ๋ด์ฅ๋ template engine์ด๋ค(flask์ ์ ์์ฌ๊ฐ ๋์ผํ๋ค.).
์ผ๋ฐ์ ์ผ๋ก flask์์ html ํ์ผ์ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
# app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.get('/')
def main():
# project ํด๋ ๋ด templates ํด๋์์ ํด๋น ํ์ผ์ ์ฐพ๋๋ค.
return render_template("hellouser.html")
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
<!-- hellouser.html -->
<div id="name">์๋
ํ์ธ์, @@ ๋~</div>
template engine์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด hellouser.html
ํ์ผ์ ์ฌ์ฉ์ ์ ๋งํผ ๋ง๋ค์ด์ผํ๋ค. ๋ค์์ template engine์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ด๋ค.
# app.py
from flask import Flask, render_template, request
app = Flask(__name__)
@app.get('/')
def main():
# user=... query์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ด.
user_receive = request.args.get("user")
return render_template("hellouser.html", user=user_receive)
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
<!-- hellouser.html -->
<div id="name">์๋
ํ์ธ์, {{name}} ๋~</div>
render_template
๋ฉ์๋์ html๋ก ๋๊ฒจ์ค ๋ณ์์ ๊ฐ(user=user_recevie
)์ ์ถ๊ฐํด์ฃผ๊ณ , html์์ {{๋ณ์๋ช
}}
์ ํตํด ๋ณ์๋ฅผ ๋ฐ์์ ๊ทธ๋ ค์ค๋ค.