Веб-платформа Python

#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" ]
    ]
]