Python の Web アプリケーション・フレームワークのひとつ、Flask を触ってみました。 Hello World を表示させるサンプルと、Jinja2 テンプレートをつかった HTML 生成を少しやってみます。
ほとんどサンプルコードそのままなので誰かの参考になるようなものではないのですが、自分の備忘のためという意味もこめて。
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!!"
@app.route('/user/<username>')
def show_user_name(username=''):
# return "user: " + username
return render_template('hello.html', name=username)
def main():
app.debug = True
app.run()
if __name__ == '__main__':
main()
こういう感じで例えば hello.py という名前で保存したとすると、ターミナルから実行すると http://localhost:5000/ で動きます。 テンプレートは hello.py が あるディレクトリに templates というディレクトリを作ってそのなかに html ファイルとして置いておきます。今回のサンプルでは hello.html という名前にしています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Hello from Flask</title>
<script></script>
</head>
<body>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
</body>
</html>
http://localhost:5000/hoge などにアクセスすると <h1> タグで囲まれた Hello hoge! という文字列が表示されます。 どの URL にアクセスがあったらどういう処理を返すかというのを @app.route('') というデコレータをつけた関数で書いていく感じですね。ちょっとしたブラウザからアクセスするツールを作ったりするのに便利そうです。