Веб-программирование на Python со стандартной библиотекой - PullRequest
2 голосов
/ 08 октября 2010

Я хочу написать простое веб-приложение на Python, предоставляющее графический интерфейс для программы командной строки (например, hg serve).Это будет работать только локально.Я не хочу, чтобы у него были какие-либо внешние зависимости для более простого развертывания, поэтому веб-программирование на Python в общем случае не применимо здесь

Как это можно сделать с минимальными трудностями?Любой указатель, как это легко сделать с cgi или wsgi, string.Template или string.Formatter?Я бы предпочел решение на Python 2.6, но даже на Python 3.x все в порядке.Я также предпочел бы использовать несколько html-шаблонов для ручной сборки html-файлов.

ОБНОВЛЕНИЕ: идеальное решение будет включать способы

  • для обработки формы
  • длязагрузить / загрузить файл
  • для вывода html
  • для запуска веб-сервера

Ответы [ 3 ]

4 голосов
/ 09 октября 2010

Пакет wsgiref из стандартной библиотеки имеет простой сервер для обслуживания приложений wsgi. Вы можете использовать его для запуска своего собственного wsgi-приложения без фреймворка, минимальное wsgi-приложение не так уж сложно (см. Пример hello world в конце страницы документации по wsgiref)

Возможно, вы захотите немного ослабить требование "стандартной библиотеки". В любом случае, у вас будут "зависимости" от ваших собственных модулей, неужели так плохо использовать что-то, где кто-то другой уже сделал работу? Некоторые из так называемых «микрофреймов» не должны быть слишком большой проблемой для развертывания. Bottle например, поставляется в виде одного файлового модуля и не имеет никаких зависимостей, кроме stdlib (я сам еще не использовал Bottle, но я выбрал его в качестве примера, главным образом, из-за одного файла / без зависимостей)

0 голосов
/ 09 октября 2010

Может быть витая это путь? Или вы считаете это слишком большой внешней зависимостью?

0 голосов
/ 08 октября 2010

Вы ищете что-то вроде SimpleHTTPServer?http://docs.python.org/library/simplehttpserver.html#module-SimpleHTTPServer

...