Как создать статический.html с помощью Python

Я ищу решение на python для создания статического.html, который может быть отправлен по электронной почте, либо прикреплен, либо встроен в электронное письмо (игнорируйте этот последний вариант, если он требует намного больше работы). У меня нет требований к тому, что касается макета.html. Основное внимание здесь уделяется поиску менее болезненного решения для создания автономного.html.

Потенциальное решение может быть в соответствии со следующим псевдокодом.

from some_unknown_pkg import StaticHTML

# Initialise instance
newsletter = StaticHTML()

# Append charts, tables and text to blank newsletter.
newsletter.append(text_here)
newsletter.append(interactive_chart_generated_with_plotly)
newsletter.append(more_text_here)
newsletter.append(a_png_file_loaded_from_local_pc)



# Save newsletter to .html, ready to be sent out.
newsletter.save_to_html('newsletter.html')

куда 'newsletter.html' может быть открыт в любом браузере. Просто чтобы предоставить немного больше контекста, этот.html должен быть разослан нескольким избранным сотрудникам моей компании и содержит разумные данные. Я использую plotly для создания интерактивных диаграмм для вставки в.html.

2 ответа

Возможное решение здесь

Кажется, пакет в этом ответе именно то, что вы хотите. Документы: http://www.yattag.org/

Еще один довольно хороший пакет здесь.

Запустите свой модуль Python с помощью импорта sys модуль и перенаправить стандартный вывод на newsletter.htmlimport sys sys.stdout = open('newsletter.html','w')

Это перенаправит любой вывод, сгенерированный в HTML-файл. Теперь просто используйте print Команда в Python для передачи тегов HTML в файл. Например, попробуйте:

print "<html>" print "<p> This is my NewsLetter </p>" print "</html>"

Этот фрагмент кода создаст основной файл HTML. Теперь вы можете открыть этот файл в любом браузере. Для отправки электронной почты вы можете использовать email а также smtplib модули питона.

Пакет Dominate выглядит так, как будто он предоставляет простой и интуитивно понятный способ создания HTML-страниц. https://www.yattag.org/

У меня была точно такая же проблема, и я не смог найти простой пакет Python, поэтому я создал свой собственный:

https://github.com/ar-nowaczynski/htmlcreator

Для python >= 3.6:

pip install htmlcreator

Пример:

from htmlcreator import HTMLDocument

document = HTMLDocument()

document.set_title('my title')
document.add_header('section 1')
document.add_text('my text')
document.add_header('section 2')
document.add_image('/path/to/image.jpg')  # images are fully embedded inside

document.write('my_document.html')  # standalone file

Полный пример здесь: https://github.com/ar-nowaczynski/htmlcreator/blob/master/examples/1_build_first_document.py

Пример предварительного просмотра файла: https://htmlpreview.github.io/?https://github.com/ar-nowaczynski/htmlcreator/blob/master/examples/1_first_document.html

Другие вопросы по тегам