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






См. Реализацию Ссылка WSGI.
Насколько минималистично и с какой целью?
SimpleHTTPServer поставляется бесплатно как часть стандартных библиотек Python.
Если вам нужно больше возможностей, посмотрите CherryPy или (наверху) Скрученный.
Настоятельно рекомендую Twisted (или Kamaelia) по сравнению с другими. Он знает, как интегрироваться с основными циклами пользовательского интерфейса, используемыми в настольных приложениях.
Разве Twisted не переборщил с таким решением?
В оригинальном плакате ничего не говорилось о назначении веб-сервера. Если нужно предоставить страницу, которую пользователь читает за раз и не слишком часто, то Twisted излишний. Как способ обеспечить часто используемый интерфейс данных, это может быть не так. Поэтому я предложил ряд решений.
Настоятельно рекомендую CherryPy 3 по сравнению с другими. Он вообще ничего не запускает в основном цикле и специально разработан для встраивания таким образом.
Если вы делаете много параллельных операций, вы можете рассмотреть HTTPServerКамаэлия.
Kamaelia отлично подходит для параллельной работы, но разве это не будет довольно большая библиотека, чтобы включить только минимальный веб-сервер?
Есть много вещей, которые можно было бы вырезать, если бы кто-то был так склонен. Идея сделать несколько «раздач» Камаэлии была высказана, но этого еще не произошло. (Но да, я согласен с тем, что это может быть значительная библиотека, которую можно включить как есть).
Я становлюсь большим поклонником недавно выпущенной библиотеки схемы. Это структура компонентов / событий, которая поставляется с очень хорошим набором пакетов для создания веб-серверов и приложений. Вот простой веб-пример с сайта:
from circuits.lib.web import Server, Controller
class HelloWorld(Controller):
def index(self):
return "Hello World!"
server = Server(8000)
server += HelloWorld()
server.run()
Его поддержка WSGI тоже не более сложна. Хорошая вещь.
Я нашел web.py довольно простым в использовании: http://webpy.org/
Если вы хотите использовать что-то из стандартной библиотеки, я настоятельно рекомендую нет с использованием SimpleHTTPServer, но вместо этого использовать wsgiref.simple_server. SimpleHTTPServer - неудобный и довольно бессмысленный способ реализации веб-приложения, и хотя чистый WSGI не так уж прост (но, безусловно, возможен), у вас есть возможность использовать любую структуру на основе WSGI поверх него. Также, если вы используете wsgiref, у вас будет возможность позже перейти на такой сервер, как CherryPy (обратите внимание, что сервер в CherryPy можно использовать отдельно от остальной части фреймворка, и вам понадобится только один файл только для сервера). Для «настоящего» веб-приложения CherryPy имеет несколько преимуществ перед wsgiref, но для локально размещенного приложения вряд ли какое-либо из них будет иметь значение.
Если вы создаете настольное приложение, вам нужно будет запустить отдельный поток для wsgiref или CherryPy. Если это нормально, то, вероятно, проще всего будет сервер на основе WSGI. Если вы не хотите запускать отдельный поток для сервера, вам, скорее всего, потребуется использовать Twisted.
Я настоятельно рекомендую CherryPy; Я профессионально пользуюсь им в течение многих лет и очень им доволен.