Форум сайта python.su
0
Всем привет! Есть необходимость в создании отчета в программке. Как выглядит отчет еще не придумал, но скорей всего необходимы таблицы, стрелочки что откуда получается (результаты) и так далее. Вообще нужно красиво и не сложно.
Попытался использовать reportlab, но как сделать таблицу не понял (или плохо читал). Отсюда у меня вопрос к вам, в какой форме отчет сделать более легче и как?
Офлайн
8
Делайте в html - это намного проще. При необходимости все можно переконвертировать в PDF используя http://www.xhtml2pdf.com/
Офлайн
0
А как сделать в хтмл? При помощи чего? Дайте ссылку если не сложно.
Офлайн
19
В принципе можно посмотреть в сторону lxml
Ссылка: http://google.com?q=lxml
Офлайн
8
Проще всего, наверное 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'))
Офлайн
19
ziro
Проще всего, наверное jinja2 (http://jinja.pocoo.org/) использовать.
Офлайн
0
ziro, нашлось время, скачал, установил, почитал документацию и… ничего не понял. В Вашем посте есть кусок из выдранного проекта, где указывается какой шаблон использовать и какие данные туда запихивать, но перед этим шаблон еще надо создать как-то, а вот как это сделать я не понимаю. Кроме офф документации я ничего не нашел… =\
Офлайн
0
Все сделал, разобрался, всем спасибо!
Офлайн