python webserver simplehttpserver

¿Cómo puedo crear un servidor web local para mis scripts de python?



python apache windows (3)

Estoy buscando usar un servidor web local para ejecutar una serie de scripts de Python para el usuario. Por varias razones inevitables, el script de Python debe ejecutarse localmente, no en un servidor. Como resultado, usaré el navegador HTML + como la interfaz de usuario, con la que me siento cómodo, para la parte delantera.

He estado buscando, por lo tanto, un servidor web ligero que pueda ejecutar scripts de Python, sentado en segundo plano en una máquina, idealmente como un servicio de Windows. La seguridad y la extensibilidad no son prioridades altas ya que todo se ejecuta internamente en una red pequeña.

¿Debo ejecutar un servidor web Python nativo como un servicio de Windows (en cuyo caso, cómo)? ¿O es tan fácil instalar Apache en la máquina del usuario y ejecutarlo como CGI? Como todo esto es local, el rendimiento tampoco es un problema.

¿O me falta algo obvio?


La ejecución de un servidor web Python nativo como un servicio de Windows no debería ser una obviedad. Consulte la documentación para escribir servicios de Windows (win32api, ActiveState python) en python y también la documentación para crear subclases de BaseHttpServer y SimpleHttpServer.

BTW: Tuve una pregunta similar sobre : ¿Cómo detener BaseHTTPServer.serve_forever () en una subclase BaseHTTPRequestHandler?

Básicamente, usted subclase BaseHTTPServer (debe hacerlo de todos modos ...) y luego ... pero simplemente lea la respuesta aceptada, ¡me puso en el camino correcto!


La mejor forma de hacerlo es crear su propio servidor local mediante el símbolo del sistema.

  1. Hacer una nueva carpeta decir Proyecto
  2. Cree una nueva carpeta dentro del proyecto y nómbrela como "cgi-bin" (sin comillas)
  3. Pegue su archivo .py dentro de la carpeta cgi-bin
  4. Abra cmd y cambie al directorio desde el que desea ejecutar el servidor y escriba "python -m CGIHTTPServer" (sin comillas)
  5. Minimice la ventana de cmd y abra su navegador y escriba "localhost: 8000 / cgi-bin / yourpythonfilename.py" (sin comillas).

No pierdas mucho tiempo creando el servicio de Windows.

No pierdas mucho tiempo en Windows Apache.

Simplemente haga un servicio de Python que responda a las solicitudes HTTP.

Mire https://docs.python.org/2/library/basehttpserver.html
https://docs.python.org/3/library/http.server.html para la versión 3
Python ofrece un servidor HTTP que puede ampliar con sus métodos del lado del servidor.

Mire en http://docs.python.org/library/wsgiref.html
Python ofrece una implementación de referencia WSGI que hace que su servidor sea fácil y compatible con los estándares.

También http://fragments.turtlemeat.com/pythonwebserver.php

"Estoy tratando de evitar que el usuario ejecute cosas de Python desde el símbolo del sistema".

No veo que hacer clic en una página web sea diferente a hacer clic en los iconos del escritorio.

Iniciar un servidor web basado en Python es relativamente fácil, una vez que tiene el servidor web. Primero, construye el servidor. Más tarde, puede asegurarse de que el servidor se inicia. Veamos algunas formas.

  1. Su usuario no puede usar un navegador aleatorio para abrir su página local. Necesitan un marcador para iniciar "localhost: 8000 / myspecialserverinsteadththedestop /". Ese marcador puede ser un archivo .BAT que (1) ejecuta el servidor, (2) ejecuta Firefox con la URL inicial adecuada.

  2. Puede poner el servidor en el menú de inicio del usuario.

  3. Puedes hacer que tu programa Python sea un "servicio" de windows.