Подтвердить что ты не робот

Написание веб-сайта в Python

Я достаточно разбираюсь в PHP, но хочу попробовать что-то новое.

Я также знаю немного Python, достаточно, чтобы делать основы основ, но не использовал в ситуации типа веб-дизайна.

Я только что написал это, которое работает:

#!/usr/bin/python

def main():
    print "Content-type: text/html"
    print
    print "<html><head>"
    print "<title>Hello World from Python</title>"
    print "</head><body>"
    print "Hello World!"
    print "</body></html>"

if __name__ == "__main__":
    main()

Дело в том, что это кажется довольно громоздким. Не используя что-то огромное, как django, что лучший способ писать сценарии, которые могут обрабатывать, получать и публиковать?

4b9b3361

Ответ 1

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

Если вы ищете прямую замену тому, что вы написали выше (например, CGI-скриптинг), то вы, вероятно, ищете cgi. Это часть стандартной библиотеки Python. Бесплатная функциональность доступна в urllib и urllib2, Вы также можете быть заинтересованы в BaseHTTPServer и SimpleHTTPServer, также является частью стандартной библиотеки.

Входя в более интересную территорию, wsgiref дает вам основы WSGI, в этот момент вы, вероятно, захотите начать думать о более "каркасе" (это слово?), например, как web.py, Django, Pylons, CherryPy и т.д., как говорили другие.

Ответ 2

Что касается полных фреймворков, я считаю, что Django относительно невелик.

Если вам действительно нужен легкий вес, проверьте web.py, CherryPy, Pylons и web2py.

Я думаю, что любимая толпа из вышеперечисленного - это Pylons, но я человек Django, поэтому я не могу сказать больше ничего.

Подробнее о облегченных фреймворках Python см. этот вопрос.

Ответ 3

В python есть несколько веб-фреймворков, которые избавят вас от большей части работы.

  • Django
  • Pylons (и новый TurboGears, основанный на нем).
  • Web2py
  • CherryPy (и старый TurboGears, основанный на нем)

Я не чувствую, что Django "большой", как вы говорите; однако, я думаю, что Pylons и CherryPy могут быть лучшим ответом на ваш вопрос. CherryPy кажется проще. но кажется также немного "passé", в то время как Pylons находится в активном развитии.
Для Pylons есть также интересная книга Pylons, доступная в Интернете.

Ответ 4

В Python способ создания веб-сайта - использовать фреймворк. Большинство популярных (и активно поддерживаемых/поддерживаемых) рамок уже упоминалось.

В общем, я не рассматриваю Djano или Turbogears как "огромные", я считаю их "полными". Каждый из них позволит вам создать базу данных, поддерживающую динамический веб-сайт. Предпочтение одному над другим - это больше о стиле, чем о функциях.

Zope, с другой стороны, чувствует себя "большим". Zope также является "корпоративным" классом с точки зрения функций, которые включены в комплект поставки. Очень приятно, что вы можете использовать ZODB (базу данных объектов Zope) без использования остальной части Zope.

Это, безусловно, поможет, если мы узнаем, какие сайты вам интересны при разработке, поскольку это может помочь сузить предложения.

Ответ 5

В web2py предыдущий код будет

в контроллере default.py:

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

в поле зрения default/main.html:

<html><head>
<title>Hello World from Python</title>
</head><body>
{{=message}}
</body></html>

ничего другого, без установки, без конфигурации, вы можете редактировать два файла выше непосредственно в Интернете через интерфейс администратора. web2py основан на wsgi, но работает также с cgi, mod_python, mod_proxy и fastcgi, если mod_wsgi недоступен.

Ответ 6

Мне очень нравится django, и мне это не кажется огромным. Это очень мощный, но не огромный.

Если вы хотите начать играть с http и python, проще всего использовать BaseHttpServer в стандартной библиотеке. Подробнее см. http://docs.python.org/library/basehttpserver.html

Ответ 7

Я согласен с Паоло - Django довольно маленький и способ пойти, но если вы не с этим, я бы добавил к TurboGears в список

Ответ 8

Если вы ищете инфраструктуру, посмотрите на этот список: Python Web Frameworks

Если вам понадобится небольшой script (- s) или однократное задание script, может быть, что для простого CGI-модуля будет достаточно - CGI Скрипты и сам cgi-модуль.

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

Ответ 9

Что такое "огромный", это вопрос вкуса, но Django - это "полный стек", который включает в себя все: от ORM до шаблонов, множество вещей. Поэтому он не маленький (хотя и меньше, чем Grok и Zope3, другие веб-фреймворки с полным стеком python).

Но есть также множество действительно маленьких и минималистических веб-фреймворков, которые не делают ничего, кроме как обеспечить основу для веб-части. Многие из них были упомянуты выше. К списку я должен добавить BFG и Bobo. Оба совершенно минимальные, но все же полезные и гибкие.

http://bfg.repoze.org/ http://bobo.digicool.com/