HTMLの中に変数を入れ込むというCGIで良くやるやつです。
ソースはpython3.3を想定して書いてます。
結論から言えば、str.format() を使うだけです。
例えばPHPとかだと
$hello = 'こんにちは!'; print "<p>$hello</p>";
<p>こんにちは!</p>
となる。
これをPythonでやってみる。
hello = 'こんにちは!' print('<p>' + hello + '</p>')
<p>こんにちは!</p>
んで、そのうちコメント(ヒアドキュメント)とprintf的な書き方を使ったりし始めてー
title = '挨拶は元気よく' hello = 'こんにちは!' print(''' <div> <h1>%s</h1> <p>%s</p> </div> ''' % title, hello)
<div> <h1>挨拶は元気よく</h1> <p>こんにちは!</p> </div>
とまぁここまでなら特に問題ないと思うけど、この書き方だと
1.変数を表示したい順番に並べなければいけない(% title, hello の部分)
2.埋め込まれた箇所を見てどの変数が入っているかわからない(どこを見ても%sだらけに)
→何番目の変数か数えなきゃいけない!(>’A`)>
やりたいことは
・変数名でそのまま埋め込んで展開したい
・変数名をキーにした辞書(ディクショナリ)で管理したい
ということで解決策は「str.format() メソッドを使う」こと(・ω・)b
一目瞭然ソースを見てみる
greeting = { 'goodmorning' : 'おはよう!', 'hello' : 'こんにちは!', 'goodevening' : 'こんばんは!' } print(''' <p> {goodmorning}<br /> {hello}<br /> {goodevening} </p> '''.format(**greeting))
<p> おはよう!<br /> こんにちは!<br /> こんばんは! </p>
辞書を別ファイルにしてインポートする形にすると
色々管理しやすくて良いですね(*´-`)