• 2018-06-06
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/06/django.html

Djangoでメールのテンプレートレンダリング(テキストレンダリング)

Djangoのレンダリングと言うと大抵はHTMLのレンダリングを意味しますが、実はDjangoのレンダリング機能はメールでも何でもOK。
要は単なる文字列であればみんな一緒なんです。

メールを例にテキストレンダリングをやってみます。


template.renderでテキストファイルのレンダリング

htmlファイルと同じく、templatesフォルダの下に以下を置きます。

message.txt

こんにちは。

{{name}}です。年齢は{{age}}歳です。


このテキストをレンダリングする処理はこちら。

views.py

from django.template.loader import get_template

def string_render_index(request):
    # テンプレートを取得する
    template = get_template('start_samples/message.txt')

    # テンプレートに挿入する変数をセットアップ
    context = {
        "name": "ウズマスター",
        "age": "35",
    }

    # レンダリング
    text = template.render(context)

    # こんにちは。ウズマスターです。年齢は35歳です。
    logger.info(text)

そのままですね。

render_to_stringでテキストファイルのレンダリング

以下の書き方でも結果は同じです。

views.py

from django.template.loader import render_to_string


def string_render_index(request):
    # テンプレートに挿入する変数をセットアップ
    context = {
        "name": "ウズマスター",
        "age": "35",
    }

    # レンダリング
    text = render_to_string('start_samples/message.txt', context)

    # こんにちは。ウズマスターです。年齢は35歳です。
    logger.info(text)

特に難しいことは無いかと思います。

バックナンバー

0 件のコメント:

コメントを投稿

お気軽にコメント下さい。