Как я могу создать локальный веб-сервер для моих скриптов Python? - PullRequest
16 голосов
/ 18 мая 2009

Я хочу использовать локальный веб-сервер для запуска ряда сценариев Python для пользователя. По различным неизбежным причинам скрипт python должен запускаться локально, а не на сервере. В результате я буду использовать браузер HTML + в качестве пользовательского интерфейса, который мне удобен, для внешнего интерфейса.

Поэтому я искал легкий веб-сервер, который может выполнять скрипты Python, сидя на заднем плане на компьютере, в идеале в качестве службы Windows. Безопасность и расширяемость не являются первоочередными задачами, поскольку все они выполняются внутри небольшой сети.

Должен ли я запускать собственный веб-сервер python в качестве службы Windows (в каком случае, как)? Или же установить Apache на компьютер пользователя так же просто, как и CGI? Поскольку все это локально, производительность также не является проблемой.

Или я упускаю что-то очевидное?

Ответы [ 3 ]

16 голосов
/ 18 мая 2009

Не тратьте много времени на создание службы Windows.

Не тратьте много времени на Windows Apache.

Просто создайте сервис Python, который отвечает на HTTP-запросы.

Посмотрите на https://docs.python.org/2/library/basehttpserver.html
https://docs.python.org/3/library/http.server.html для версии 3
Python предлагает HTTP-сервер, который вы можете расширить с помощью методов на стороне сервера.

Посмотрите на http://docs.python.org/library/wsgiref.html
Python предлагает эталонную реализацию WSGI, которая делает ваш сервер простым и совместимым со стандартами.

Также http://fragments.turtlemeat.com/pythonwebserver.php


"Я пытаюсь избежать , чтобы пользователь запускал Python из командной строки."

Я не вижу, как нажатие на веб-страницу отличается от нажатия значков на рабочем столе.

Запуск веб-сервера на основе Python относительно прост, если у вас есть веб-сервер. Сначала соберите сервер. Позже вы можете убедиться, что сервер запускается. Давайте посмотрим на некоторые способы.

  1. Ваш пользователь не может использовать произвольный браузер, чтобы открыть вашу локальную страницу. Им нужна закладка для запуска «localhost: 8000 / myspecialserverinsteadofthedestop /». Эта закладка может быть файлом .BAT, который (1) запускает сервер, (2) запускает firefox с правильным начальным URL.

  2. Вы можете поместить сервер в меню «Пуск» этого пользователя.

  3. Вы можете сделать вашу программу на Python "службой" для Windows.

1 голос
/ 11 марта 2014

Лучший способ - создать собственный локальный сервер с помощью командной строки.

  1. Создайте новую папку, скажем Project
  2. Создайте новую папку внутри проекта и назовите ее «cgi-bin» (без кавычек)
  3. Вставьте ваш .py файл в папку cgi-bin
  4. Откройте cmd и перейдите в каталог, из которого вы хотите запустить сервер, и введите «python -m CGIHTTPServer» (без кавычек)
  5. Сверните окно cmd, откройте браузер и введите «localhost: 8000 / cgi-bin / yourpythonfilename.py» (без кавычек).
0 голосов
/ 18 мая 2009

Запуск собственного веб-сервера Python в качестве службы Windows не составит труда. Ознакомьтесь с документацией по написанию служб Windows (win32api, ActiveState python) на python, а также с документацией по подклассам BaseHttpServer и SimpleHttpServer.

Кстати: у меня был похожий вопрос по stackoverflow: Как остановить BaseHTTPServer.serve_forever () в подклассе BaseHTTPRequestHandler?

По сути, вы подкласс BaseHTTPServer (вы должны в любом случае ...), а затем ... но просто прочитайте принятый ответ - он поставил меня на правильный путь!

...