n2b
Апрель 5, 2012 07:42:38
Всем привет! Есть необходимость в создании отчета в программке. Как выглядит отчет еще не придумал, но скорей всего необходимы таблицы, стрелочки что откуда получается (результаты) и так далее. Вообще нужно красиво и не сложно.
Попытался использовать reportlab, но как сделать таблицу не понял (или плохо читал). Отсюда у меня вопрос к вам, в какой форме отчет сделать более легче и как?
ziro
Апрель 5, 2012 08:09:20
Делайте в html - это намного проще. При необходимости все можно переконвертировать в PDF используя
http://www.xhtml2pdf.com/
n2b
Апрель 5, 2012 08:40:38
А как сделать в хтмл? При помощи чего? Дайте ссылку если не сложно.
cutwater
Апрель 5, 2012 09:01:28
В принципе можно посмотреть в сторону lxml
Ссылка:
http://google.com?q=lxml
ziro
Апрель 5, 2012 10:08:11
Проще всего, наверное jinja2 (
http://jinja.pocoo.org/) использовать.
Вот выдрал из одного проекта:
import os
from jinja2 import Environment, FileSystemLoader
#: Определяет место расположения Jinja2 шаблонов в файловой системе
TEMPLATE_ROOT = os.path.join(os.path.dirname(__file__), 'templates')
#: Определяет директорию для сохранения сгенерированных модулей
OUTPUT_ROOT = os.path.join(os.path.dirname(__file__), 'reports')
#: Среда выполнения шаблонов Jinja2
jinja_env = Environment(loader=FileSystemLoader(TEMPLATE_ROOT))
def process_template(data, template, outfile):
"""
Функция выполняет генерацию модуля на основе указанного шаблона
:param data: данные для рендеринга шаблона;
:param template: файл шаблона, используемый для генерации отчета;
:param outfile: имя файла для сохранения сгенерированного кода относительно
директории :data:`OUTPUT_ROOT`;
"""
code = jinja_env.get_template(template).render(**data)
with open(os.path.join(OUTPUT_ROOT, outfile), 'w') as f:
f.write(code.encode('utf-8'))
cutwater
Апрель 5, 2012 20:14:29
ziro
Проще всего, наверное jinja2 (http://jinja.pocoo.org/) использовать.
И то правда. Как-то сразу не подумал о шаблонизаторах. Мой совет снимается в пользу jinja2
n2b
Апрель 15, 2012 00:37:43
ziro, нашлось время, скачал, установил, почитал документацию и… ничего не понял. В Вашем посте есть кусок из выдранного проекта, где указывается какой шаблон использовать и какие данные туда запихивать, но перед этим шаблон еще надо создать как-то, а вот как это сделать я не понимаю. Кроме офф документации я ничего не нашел… =\
n2b
Апрель 17, 2012 09:44:46
Все сделал, разобрался, всем спасибо!