
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>
辞書を別ファイルにしてインポートする形にすると
色々管理しやすくて良いですね(*´-`)






