#python #web-frameworks
#python #веб-фреймворки
Вопрос:
Существует ли веб-фреймворк Python, в котором код Python и HTML-код находятся в одном файле?
Django использует шаблоны со специальным языком для генерации HTML. В Pylons используется разновидность языка, название которого Mako.
Я предпочитаю выводить HTML с помощью вызовов типа:
echo('''
HTML string
''')
или
print '''
HTML string
'''
вместо специальных языков.
Редактировать:
Могу ли я сделать что-то вроде PHP?
echo( '''<p>Something</p>''' )
if cond:
echo( '''<p>Another thing 1</p>''' )
else:
echo( '''<p>Another thing 2</p>''' )
Комментарии:
1. Вам следует использовать CGI, если это то, что вы хотите.
2. @Rafe: CGI — это протокол связи, который не определяет, как создается контент. Я обслуживаю свои приложения Django через (быстрый) CGI, и они не обслуживают / не могут обслуживать контент таким образом.
Ответ №1:
Если вы хотите использовать print
сам по себе, вы можете захотеть положиться на cgi
. Что касается шаблонов, то самое близкое, что вы можете получить, — это из Templator проекта webpy
The web.py язык шаблонов, называемый Templetor, разработан для того, чтобы использовать возможности Python в шаблонах. Вместо того, чтобы изобретать новый синтаксис для шаблонов, он повторно использует синтаксис python. Если вы знаете язык программирования Python, вы будете чувствовать себя как дома.
Ответ №2:
Это может быть то, что вы предпочитаете, но это действительно противоречит всем лучшим практикам. При этом вы можете сделать это с помощью django.
from django.http import HttpResponse
dev some_view(request):
return HttpResponse("This is foolish short term gain")
Ответ №3:
Движок шаблонов web2py позволяет вам использовать чистый Python в ваших HTML-шаблонах (смотрите подробности в книге). Вы также можете использовать HTML-помощники web2py для сборки HTML на Python (это генерирует серверный DOM, который можно запрашивать и которым можно манипулировать перед отображением в HTML). При желании механизм шаблонов может использоваться независимо от фреймворка (соответствующий модуль /gluon/template.py). Если есть что-то конкретное, что вы хотите сделать, не стесняйтесь спрашивать в списке рассылки.
Ответ №4:
Divmod Nevow позволит вам делать это либо с помощью печати, либо с помощью пользовательского языка Python на основе выражений, который позволяет вам встраивать код XHTML непосредственно в ваши скрипты. Однако это бета-версия, основанная на Twisted и, следовательно, немного нетрадиционная, и основной сайт компании, которая его разрабатывает, не работает, поэтому я не могу указать вам на учебник или что-либо еще прямо сейчас. Используйте на свой страх и риск.
Синтаксис специального синтаксиса (называемый stan) выглядит более или менее следующим образом:
tags.html[
tags.head[ tags.title[ "Greetings!" ]],
tags.body[
tags.h1(style="font-size: large")[ "Now I will greet you:" ],
tags.span[ "Hello, world" ]
]
]