Python フレームワークBottleを使ってみるではpyファイルにhtmlタグを記述していたので htmlファイルを作成して読み込むようにする
htmlタグが記述されたHelloWorld.py
from bottle import route, run, template @route('/hello/<name>') def index(name): return template('<b>Hello {{name}}</b>!', name=name) run(host='localhost', port=8080)
return template()の引数にhtmlファイルを記述してみる
まず思いついた方法でやってみる!
pyファイルと同じ階層にhtmlファイルを作成
HelloWorld.html
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>HelloWorld</title> </head> <body> Hello {{name}}! </body> </html>
pythonコードのreturn template()
部分の第一引数をhtmlファイルのパスにする
HelloWorld.py
from bottle import route, run, template @route('/hello/<name>') def index(name): return template('./HelloWorld.html', name=name) run(host='localhost', port=8080)
え!これで表示された!!
ターミナルからBottleサーバを起動してlocalhost:8080/hello/worldにアクセス
htmlファイルで<title>HelloWorld</title>
と書いているから
Safariのタブにも「HelloWorld」と表示されている(html作成前はタブにはアドレスが出ていた)
キャッシュが残っているとかでは…?
こんなにあっさりhtmlファイルが読み込みできてしまうとは思わなかったので、検証してみる
pythonコードを存在しないhtmlファイル名にしてサーバを再起動
return template('./Hello-World.html', name=name)
ちゃんとエラーになった!!エラーメッセージも「ファイルが見つかりません」だ!
Bottleすごいよ!
パスを記述してhtmlファイルを読み込むだけでもすごいけれど、{{name}}
を置き換えて表示できるから本当にすごい!!(フレームワークだったら当たり前??)
プレーンなhtmlファイルを画面表示する前に「何かのテンプレート」にしてくれてるんだ!きっと
{{ }}
で置き換える項目が多くなると、引数が増えてコードが読みにくくなっちゃうな…