app.py
from bottle import route, run
from bottle import TEMPLATE_PATH, jinja2_template as template
TEMPLATE_PATH.append("./views")
@route('/')
@route('/hello/<name>')
def greet(name="Stranger"):
return template('hello.j2', name=name)
run(host='localhost', port=8080, debug=True, reloader=True)
ソースは上の通り(開発環境)。
- jinja2_templateをimportする(htmlファイルのパスを指定したい場合はTEMLATE_PATHも)
- jinja2テンプレートを返却(拡張子は何でもいいのか…?)
参考までに
hello.j2
{% extends "base.j2" %}
{% block content %}
Hello {{ name }}! How are you?
{% endblock %}
base.j2
<html>
<head>
<title> Sample Bottle App </title>
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>
でサーバを走らせて
% python app.py
http://localhost:8080/
と
http://localhost:8080/hello/hoge
にアクセスすると、デフォルトとパラメータ両方正しく画面が出力されることが確認されます。