3
jinja2をテンプレートエンジンとして使用して特定のファイルを生成するスクリプトを作成しています。最後の行を除いて、私が期待するファイルを作成します。テンプレートでは、最後の空行を指定しましたが、ファイルが作成されるとその行はありません。jinja2最後の改行を無視しますか?
テンプレートは次のようになります。
# -*- coding: utf-8 -*-
from openerp import fields, models, api
class {{ class_name }}(models.{{ model_type }}):
"""{{ class_docstring }}"""
_{{ def_type }} = '{{ model }}'
# Here is actually empty line. Note comment does not exist on template. It is just empty line.
ので、合計でこのテンプレートで定義されている10行があります。しかし、このテンプレートを使用して作成されたファイルは、9行しか持たない(最後の行は作成されません)。
これは予期された動作ですか、または私が期待している最後の行を作成するはずですか?ここで
データおよびレンダリング処理するメソッド:
from jinja2 import Environment, FileSystemLoader
PATH = os.path.dirname(os.path.abspath(__file__))
TEMPLATE_ENVIRONMENT = Environment(
autoescape=True,
loader=FileSystemLoader(os.path.join(PATH, 'templates')),
trim_blocks=False)
...
...
@staticmethod
def render_template(t, context):
# For now it only supports standard templates.
template_filename = TEMPLATE_FILES_MAPPING[t]
return TEMPLATE_ENVIRONMENT.get_template(template_filename).render(
context)