テンプレートについて補足。
昨日のスクリプトでは、template 関数の引数に直接テンプレートを文字列として渡していた。短いテンプレートならそれでもいいけど、引数として文字列で渡すには長すぎるのが普通だ。そこで、テンプレートそのものじゃなく、名前で指定できるようになっている。
テンプレートは、スクリプトと同じディレクトリの下に views という名前でディレクトリを作って、その中に入れておく。そうすると bottle がテンプレートを見つけて読み込んでくれる。
次のスクリプトでは info という名前のテンプレートを使っている。
# encoding: utf-8
from bottle import route, request, template, run
@route('/')
def index():
return "<a href="\"./info\"">Link</a>"
@route('/info')
def info():
ip = request.environ.get('REMOTE_ADDR')
referer = request.headers.get('Referer') or ''
return template("info", ip=ip, referer=referer)
run(host='localhost', port='8080', debug=True, reloader=True)
で、テンプレートのほうはこう。
<h1>Remote information</h1>
IP address: {{ip}}
Referer: {{referer}}