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

Встроенный веб-сервер в Python?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

from circuits.lib.web import Server, Controller

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

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

Поддержка WSGI не более сложна. Хороший материал.

Ответ 3

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

Ответ 4

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

Ответ 5

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

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