HTMLへの展開以外でのテンプレートの使い方

テンプレートシステムは、HTMLの展開以外でも非常に便利なので、一般のファイルに対して使うことを考える。
例えば、以下のアスキーファイルで、0.001と200という数値を状況に応じて書き変えたい場合。

variable 1 is 0.001.
variable 2 is 200.

テンプレートファイルを以下のように書く。val01とval02に値を入れればよい。ファイル名は、example.txtとしておく。

variable 1 is {{ val01 }}.
variable 2 is {{ val02 }}.

まず、テンプレートファイルをロードするためには、検索パスを設定しておく。これは、プロジェクトディレクトリのsettings.py中のTEMPLATE_DIRSにパスを加えればよい。次に、実際の置き変えを行うコードは例えば以下のように書く。

from django.template import Context, loader

def testwrite(adict):
    fp = open('/home/hoge/test.txt', 'w')
    t = loader.get_template('example.txt')
    fp.write(t.render(Context(adict))
    fp.close()

ここで、adictは辞書で、

adict = {'val01': 0.02, 'val02': 100}

のように値を入れておく。