quixote - это устаревшая, но все еще увлекательная среда - она в основном "встраивает HTML в Python" (а не наоборот, как это делают все популярные системы шаблонов).
Oneпростой пример из обзор :
def format_row [html] (head, value):
"<tr valign=top align=left>\n"
" <th align=left>%s</th>\n" % head
" <td>%s</td>\n" % value
"</tr>\n"
В собственно Python первой из этих строк будет строка документации, остальные будут игнорироваться, а часть [html]
будетошибка синтаксиса.В Quixote
[html]
помечает эту функцию как «PTL» (Python Template Language), а не как собственно Python, расширение файла для модулей с такими функциями - .ptl
, но они все еще могут быть import
ed из Python и эти строки выводятся.
Я сомневаюсь, что вы хотите принять Quixote
в предпочтении современным шаблонным подходам Python, но это делает для интересного чтения, ИМХО.
Далеесхожие строки - nevow (хотя он больше ориентирован на генерацию XML, а не HTML как такового), особенно stan , где канонический пример ...:
>>> from nevow import flat, stan
>>> html = stan.Tag('html')
>>> p = stan.Tag('p')
>>> someStan = html[ p(style='font-family: Verdana;')[ "Hello, ", "world!" ] ]
>>> flat.flatten(someStan)
'<html><p style="font-family: Verdana;">Hello, world!</p></html>'
Вид "еще круче" ... потому что вам не нужно беспокоиться о правильном закрытии тегов ;-).
В конце, тем не менее, для производственных работ обычно предпочитают системы шаблонов, такие как jinja2 или mako - главная практическая причина - лучшее разделениеЯ полагаю, логика представления (в шаблоне) из других слоев (в собственном коде Python), отличных от предлагаемых, с подходами «встраивания HTML / XML в Python».