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)