Встроенный веб-сервер в Python? [закрытый]

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

7 ответов


Как минималистично и с какой целью?

SimpleHTTPServer поставляется бесплатно как часть стандартных библиотек Python.

Если вам нужно больше возможностей, смотрите в CherryPy или (в верхней части) Twisted.


Я становлюсь большим поклонником недавно выпустила схемы библиотека. Это структура компонентов / событий, которая поставляется с очень хорошим набором пакетов для создания веб-серверов и приложений. Вот простой веб-пример с сайта:

from circuits.lib.web import Server, Controller

class HelloWorld(Controller):
   def index(self):
      return "Hello World!"

server = Server(8000)
server += HelloWorld()
server.run()

его поддержка WSGI не сложнее, чем это. Хороший материал.


Если вы делаете много параллельных вещей, вы можете рассмотреть Kamaelia ' s HTTP-сервера.


Я нашел web.py довольно легко использовать : http://webpy.org/


Если вы хотите использовать что-то из стандартной библиотеки, я настоятельно рекомендую не используя SimpleHTTPServer, но вместо этого используя wsgiref.simple_server. SimpleHTTPServer неудобный и довольно бессмысленный способ реализации веб-приложения, и хотя raw WSGI не очень прост (но, безусловно, возможен), у вас есть возможность использовать любую структуру на основе WSGI поверх нее. Кроме того, если вы используете wsgiref, у вас будет возможность перейти на сервер, такой как CherryPy позже (Примечание что сервер в CherryPy можно использовать отдельно от остальной части фреймворка, и вам нужно только одним файлом только для сервера). Для" реального " веб-приложения CherryPy имеет несколько преимуществ перед wsgiref, но для локально размещенного приложения вряд ли какой-либо из них будет иметь значение.

Если вы создаете настольное приложение, вам нужно будет запустить отдельный поток для wsgiref или CherryPy. Если это нормально, то сервер на основе WSGI, вероятно, будет простейший. Если вы не хотите запускать отдельный поток для сервера, вам, скорее всего, нужно использовать Twisted.


посмотреть WSGI reference реализация.