テンプレートについて補足。
昨日のスクリプトでは、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}}