Веб-программирование на Python со стандартной библиотекой


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

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

Обновление: Идеальное решение включало бы способы

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

3 ответа:

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

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

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

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