Как создать локальный веб-сервер для скриптов python?
Я хочу использовать локальный веб-сервер для запуска серии скриптов python для пользователя. По различным неизбежным причинам скрипт python должен выполняться локально, а не на сервере. В результате я буду использовать HTML + браузер в качестве пользовательского интерфейса, с которым мне удобно, для переднего конца.
поэтому я искал легкий веб-сервер, который может выполнять скрипты python, сидя в фоновом режиме на машине, в идеале как служба Windows. Безопасности и расширяемости не высокие приоритеты, поскольку все это работает внутри небольшой сети.
должен ли я запускать собственный веб-сервер python в качестве службы Windows (в этом случае, как)? Или так же просто установить Apache на машину пользователя и запустить как CGI? Поскольку все это локально, производительность также не является проблемой.
или я упускаю что-то очевидное?
3 ответов
Не тратьте много времени на создание служб 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 относительно прост, как только у вас есть веб-сервер. Сначала создайте сервер. Позже, вы можете убедиться, что сервер запускается. Давайте посмотрим на некоторые способы.
ваш пользователь не может использовать произвольный браузер, чтобы открыть локальную страницу. Им нужна закладка для запуска " localhost: 8000/myspecialserverinsteadofthedestop/", что закладка может быть .Файл BAT ,который (1) запускает сервер, (2) запускает firefox с правильной начальной URL-АДРЕС.
вы можете поместить сервер в меню "Пуск" пользователя.
вы можете сделать свою программу Python "службой" windows.
лучший способ-создать свой собственный локальный сервер с помощью командной строки.
- сделайте новую папку say Project
- создайте новую папку внутри проекта и назовите ее "cgi-bin" (без кавычек)
- вставьте .файл py внутри папки cgi-bin
- откройте cmd и перейдите в каталог, из которого вы хотите запустить сервер, и введите "python-m CGIHTTPServer" (без кавычек)
- сверните окно cmd и откройте браузер и введите "localhost:8000/cgi-bin/yourpythonfilename.py"(без кавычек).
запуск собственного веб-сервера python в качестве службы windows не должен быть сложным. Ознакомьтесь с документацией для написания служб windows (win32api, ActiveState python) в python, а также с документацией для подклассов BaseHttpServer и SimpleHttpServer.
BTW: у меня был аналогичный вопрос о stackoverflow:как остановить BaseHTTPServer.serve_forever () в подклассе BaseHTTPRequestHandler?
в основном, вы подкласс BaseHTTPServer (вы должны в любом случае...) и... но просто прочитайте принятый ответ - он поставил меня на правильный путь!