Простой шаблон HTML в Python

Я хотел бы заполнить HTML-шаблон данными из Python. Хотя я не знаю HTML, мой коллега подготовил HTML-шаблон, тогда как я предоставляю данные. Однако он мало знает о Python.

Не могли бы вы предложить очень базовую структуру шаблонов, которая прекрасно справляется с этим разделением HTML и Python (т.е. не имеет особого синтаксиса в HTML и не так много HTML для меня, чтобы знать в коде данных Python)? В идеале HTML-шаблон должен быть очень близок к чистому HTML.

У меня также будут таблицы как данные, так что было бы неплохо, если бы мне не пришлось составлять HTML-код таблицы, но вместо этого он мог бы сделать это с некоторой минимальной логикой разметки. В идеале система должна работать, даже если мой коллега применит более продвинутые концепции, такие как CSS.

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

EDIT: точка в том, что мы новичок в этом, и нам нужно только базовое решение:) - но в идеале для меня нет HTML и не намного больше обычного HTML для него.

Ответ 1

Ну django имеет очень хороший мощный механизм шаблонов, эта цель отделяет HTML от логики python (но для этого вам потребуется использовать django в целом, так что это может быть перебор, если вы просто хотите шаблонов).

Если ваши шаблоны очень легкие (без циклов), вы можете использовать встроенную функцию python string.format (я использовал ее в побочном проекте, который сгенерированные файлы конфигурации в некоторый код Fortran, и это было не так уж плохо).

Другой выбор может быть jinja2, который действительно близок к шаблонам django, но автономный и более мощный.

Ответ 2

Могу ли я также взглянуть на web2py? На самом базовом уровне вы можете просто собрать своего коллегита html файла, а затем, когда вам нужны данные, замените его на {{= var}}, var может быть восстановлен контроллером web2py, который написан в функции python. Из функции вы можете собрать свои данные и вернуть html-представление с помощью "return dict (var = var)".

Если ваш вид выглядит так:

<html>
    <head>
        <title>some title</title>
    </head>
    <body>
        <h1>{{=message}}</h1>
    </body>
</html>

Контроллер может выглядеть так:

def index():
    message = "Hello World"
    return dict(message=message)

Вы также можете использовать django, как упомянули другие, но проверьте ссылку для документации web2py