Форум сайта python.su
16
Имеется такой шаблон:
Purchase order {{ order.order_no }} Status {{ order.status | upper }} Supplied by - {{ order.supplier_name }} {% if order.received_datetime %}Received date - {{ order.received_datetime }}{% endif %} {% for line in order.lines -%} {{ line.product_name }}, quantity - {{ line.quantity }} {% endfor -%}
from jinja2 import Environment, FileSystemLoader template_env = Environment(loader=FileSystemLoader('./')) class PurchaseOrderLine: def __init__(self, product_name, quantity): self.product_name = product_name self.quantity = quantity class PurchaseOrder: def __init__(self, order_no, supplier_name, received_datetime=None): self.order_no = order_no self.status = 'draft' self.supplier_name = supplier_name self.received_datetime = received_datetime self.lines = [] def add_line(self, line): self.lines.append(line) if __name__ == '__main__': order = PurchaseOrder(1, 'Supplier') order.add_line(PurchaseOrderLine(product_name='Bread', quantity=2)) order.add_line(PurchaseOrderLine(product_name='Milk', quantity=3)) template = template_env.get_template('order.txt') text = template.render({'order': order}) print(text)
Отредактировано Stright (Март 7, 2019 14:59:38)
Офлайн
568
Stright
Странно, что она вообще там появляется, если я правильно все понимаю, HTML обязан игнорировать переводы строк и пробелы. Это всё у вас не в <pre> теге происходит случайно? Вообще, можете показать, что получается после рендеринга?
Офлайн
16
Это не html, я пытаюсь сгенерировать текст
Вывод, если время установлено:
Purchase order 1
Status DRAFT
Supplied by - Supplier
Received date - 2019-03-07 13:19:14.589757
Bread, quantity - 2
Milk, quantity - 3
Purchase order 1
Status DRAFT
Supplied by - Supplier
Bread, quantity - 2
Milk, quantity - 3
Отредактировано Stright (Март 7, 2019 15:20:41)
Офлайн
568
Stright
Так?
Purchase order {{ order.order_no }} Status {{ order.status | upper }} Supplied by - {{ order.supplier_name }}{% if order.received_datetime %}\nReceived date - {{ order.received_datetime }}{% endif %} {% for line in order.lines -%} {{ line.product_name }}, quantity - {{ line.quantity }} {% endfor -%}
Офлайн
16
Не совсем, если время есть, то ваш вариант печатает вот что:
Purchase order 1 Status DRAFT Supplied by - Supplier\nReceived date - 2019-03-07 19:01:39.410241 Bread, quantity - 2 Milk, quantity - 3
Purchase order {{ order.order_no }} Status {{ order.status | upper }} Supplied by - {{ order.supplier_name }}{% if order.received_datetime %} Received datetime - {{ order.received_datetime }}{% endif %} {% for line in order.lines -%} {{ line.product_name }}, quantity - {{ line.quantity }} {% endfor -%}
Отредактировано Stright (Март 7, 2019 21:23:17)
Офлайн