Cómo ejecutar scripts de Python en un servidor web (por ejemplo, localhost)

Soy un principiante en python pero tengo conocimientos básicos de php. En mi desarrollo de aplicaciones android y java he estado usando scripts php para interactuar con una base de datos mysql en línea. Pero ahora quiero migrar a Python y tengo una pregunta;

¿Cómo se ejecutan las secuencias de comandos de Python en un servidor web? En mi experiencia con php, he estado guardando mis archivos en la carpeta “/ var / www” en un entorno Linux. Luego, solo llamo al archivo con una URL de la ruta. ¿Dónde guardo mis scripts de python?

He estado revisando la documentación oficial de Python, pero no encuentro mucha ayuda.

Puedes usar Flask para ejecutar webapps.

La sencilla aplicación Frask a continuación te ayudará a comenzar.

from flask import Flask, jsonify app = Flask(__name__) @app.route('/sampleurl' methods = ['GET']) def samplefunction(): #access your DB get your results here data = {"data":"Processed Data"} return jsonify(data) if __name__ == '__main__': port = 8000 #the custom port you want app.run(host='0.0.0.0', port=port) 

Ahora, cuando pulse http://your.systems.ip:8000/sampleurl obtendrá una respuesta json para que la use su aplicación móvil.

Desde dentro de la función puede hacer lecturas de bases de datos o lecturas de archivos, etc.

También puede agregar parámetros como este:

 @app.route('/sampleurl' methods = ['GET']) def samplefunction(): required_params = ['name', 'age'] missing_params = [key for key in required_params if key not in request.args.keys()] if len(missing_params)==0: data = { "name": request.argv['name'], "age": request.argv['age'] } return jsonify(data) else: resp = { "status":"failure", "error" : "missing parameters", "message" : "Provide %s in request" %(missing_params) } return jsonify(resp) 

Para ejecutar esto, guarde la aplicación flask en un archivo, por ejemplo, myapp.py

Luego desde la terminal ejecuta python myapp.py

Iniciará el servidor en el puerto 8000 (o según lo especifique usted).

El servidor incorporado de Flask no se recomienda para uso a nivel de producción. Una vez que esté satisfecho con la aplicación, es posible que desee ver el sistema Nginx + Gunicorn + Flask .

Para obtener instrucciones detalladas sobre el matraz, puede ver esta respuesta . Se trata de configurar un servidor web en Raspberry pi, pero debería funcionar en cualquier distro de Linux.

Espero que ayude.

Use un marco de aplicación web como CherryPy, Django, Webapp2 o uno de los muchos otros. Para una configuración de producción, deberá configurar el servidor web para que funcionen.

O escribe progtwigs CGI con Python.

En Apache, la forma más sencilla sería escribir el python como CGI aquí es un ejemplo:

Primero cree un .htaccess para la carpeta web que está sirviendo a su python:

 AddHandler cgi-script .py Options +ExecCGI 

Luego escriba python que incluya algunas bibliotecas cgi y encabezados de salida, así como el contenido:

 #!/usr/bin/python import cgi import cgitb cgitb.enable() # HEADERS print "Content-Type:text/html; charset=UTF-8" print # blank line required at end of headers # CONTENT print "" print "Content" print "" 

Asegúrese de que el archivo sea propiedad de Apache chown apache. filename chown apache. filename y tiene el bit de ejecución establecido chmod +x filename .

Existen muchos beneficios significativos de usar un marco web (mencionado en otras respuestas) sobre este método, pero en un entorno de servidor web localhost configurado para otros propósitos en los que solo desea ejecutar uno o dos scripts de Python, esto funciona bien.

Tenga en cuenta que en realidad no utilicé la biblioteca cgi importada en este script, pero espero que eso lo guíe a los recursos adecuados.

La mayoría del desarrollo web en Python se realiza mediante un marco web. Esto es diferente a simplemente tener scripts en el servidor, ya que el marco tiene mucha más funcionalidad, como el manejo de enrutamiento de URL, plantillas HTML , ORM , administración de sesiones de usuario, protección CSRF y muchas otras características. Esto hace que sea más fácil desarrollar sitios web, especialmente porque promueve la reutilización de componentes, de una manera OOP.

El framework web python más popular es Django . Es un marco de funciones completas, muy acoplado, con mucha documentación disponible. Si prefieres algo más modular y más fácil de personalizar, personalmente recomiendo Flask . También hay muchas otras opciones disponibles .

Dicho esto, si todo lo que realmente desea es ejecutar un solo script de Python en un servidor, puede consultar esta pregunta para ver un ejemplo sencillo utilizando apache + cgi.