InicioLinuxGuia Python: como subir nuestra aplicación a Internet

Guia Python: como subir nuestra aplicación a Internet

Linux10/5/2013
Python es un lenguaje de script desarrollado por Guido van Rossum. Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad). Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.) Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata. El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet). Subir nuestra aplicación Hola mundo a internet. Si ya tenemos nuestra aplicación ejecutándose en forma correcta localmente: http://localhost:8080 Ahora para que la puedan acceder todos en internet debemos seguir los siguientes pasos: El primer paso es registrarnos en Google si todavía no lo hemos hecho para obtener una cuenta y esto lo podemos hacer desde aquí Si ya dispone la cuenta suministrada por Google desde el panel de administración podemos crear una aplicación presionando el botón "Create an Application". Debemos seleccionar un nombre para nuestra aplicación que correrá como un subdominio de appspot.com. Seleccionado un nombre disponible (podemos comprobar disponibilidad presionando el botón "Check Availability" asignamos un título y aceptamos los términos del servicio. Ya estamos en condiciones de subir nuestra aplicación Controlar que nuestro archivo app.yaml tiene una estructura similar a: application: tutorialya version: 1 runtime: python api_version: 1 handlers: - url: /.* script: tutorialya.py Del ejemplo anterior deberá modificar la propiedad de application con el nombre de aplicación que gestionó desde su panel de control del Google App Engine. Lo mismo pasa con la propiedad script. Desde la línea de comandos del sistema operativo ejecutar el siguiente programa en Python que tiene por objetivo hacer el upload de todo nuestro proyecto a la cuenta que tenemos asignada en Google App Engine: c:Archivo de programaGooglegoogle_appengine>appcfg.py update tutorialya/ En ese momento se nos solicitará nuestro mail y clave. Ya tenemos en el servidor almacenado nuestro sitio, solo nos falta llamarlo para verlo correr en la web. http://tutorialya.appspot.com/ Recordar de remplazar el nombre tutorialya con el nombre con el que crearon su aplicación desde el panel del Google App Engine. Recuperar el dato de un text (App Engine). Realizaremos una aplicación que muestre un formulario con un control de tipo text y cuando se presione el botón submit mostraremos el dato ingresado en otra página. import cgi import wsgiref.handlers from google.appengine.ext import webapp class Formulario1(webapp.RequestHandler): def get(self): self.response.out.write("""
Ingrese su nombre:
""" class ProcFormulario1(webapp.RequestHandler): def post(self): self.response.out.write("" self.response.out.write(cgi.escape(self.request.get('nombre'))) self.response.out.write("" def main(): application = webapp.WSGIApplication([('/', Formulario1), ('/procformulario1', ProcFormulario1)], debug=True) wsgiref.handlers.CGIHandler().run(application) if __name__ == '__main__': main() El programa se inicia al ser verdadera la condición: if __name__ == '__main__': main() Los módulos son objetos y todos los módulos tienen un atributo llamado __name__. El valor del __name__ de un módulo depende de cómo esté usándolo. Si se importa el módulo, luego la propiedad __name__ es el nombre del fichero del módulo, sin el directorio de la ruta ni la extensión del archivo. Pero también puede ejecutar el módulo directamente como si fuera un programa, en cuyo caso __name__ tendrá un valor especial predefinido __main__. El if se verifica como verdadero y llama a la función main(). En la función main debemos crear un objeto de la clase WSGIApplication y pasar como parámetro una lista con elementos de tipo tupla que asocian una URL y la clase que procesa dicha petición. Cuando hacemos referencia a la raiz de nuestro sitio: http://localhost:8080/ El servidor ejecuta Formulario1 según la tupla indicada con: ('/', Formulario1) De forma similar cuando se presiona el botón submit del formulario se llama: http://localhost:8080/procformulario1 y mediante la asociación ('/procformulario1', ProcFormulario1) se ejecutará el código de la clase ProcFormulario. Todas las páginas de nuestro sitio deben ser mapeadas en la lista: application = webapp.WSGIApplication([('/', Formulario1), ('/procformulario1', ProcFormulario1)], debug=True) El segundo parámetro del constructor de la clase WSGIApplication es el modo de ejecución, normalmente el parámetro debug lo inicializamos en true mientras estamos depurando nuestra aplicación, cuando la finalizamos y la subimos al servidor el parámetro debug le asignamos False. La clase WSGIApplication se encuentra en el módulo webapp que se encuentra en el paquete google.appengine.ext: from google.appengine.ext import webapp La clase Formulario1 hereda de la clase RequestHandler que se encuentra en el paquete webapp. Para generar la página solo debemos reescribir el método get que será el que genere la página web. Para generar el contenido de la página llamamos al método write. La clase RequestHandler contiene un atributo llamado response y este un atributo out que es el que contiene el método write, es decir cada vez que queremos imprimir en la página debemos disponer el siguiente código: self.response.out.write("Hola Mundo" Si se trata de generar un bloque grande de HTML podemos utilizar la característica de Python de definir un String de varias líneas encerrándolas entre triple comillas: self.response.out.write("""
Ingrese su nombre:
""" Como vemos no es necesario escapar con el caracter '' las comillas dobles cuando usamos triple comillas. Podemos llamar tantas veces al método write como se necesite, todos los string se almacenan en un archivo de memoria que es el que se enviará al navegador que hizo la petición. Una vez que la página que contiene el formulario se muestra en el navegador el operador ingresa el nombre y al presionar el botón submit el navegador procede a enviar el dato ingresado al servidor. En la propiedad action del formulario hemos indicado quien procesará el dato en el servidor: action="procformulario1" Recordemos que tenemos mapeada dicha url : application = webapp.WSGIApplication([('/', Formulario1), ('/procformulario1', ProcFormulario1)], debug=True) Es decir que la clase ProcFormulario1 recibe el dato. Esta clase también hereda de RequestHandler pero debe redefinir el método post. Luego procedemos de forma similar a la otra clase para crear una página en forma dinámica llamando al método write, con la salvedad que para recuperar el dato cargado en el formulario procedemos a llamar al método get del objeto request que contiene la clase: class ProcFormulario1(webapp.RequestHandler): def post(self): self.response.out.write("" self.response.out.write(cgi.escape(self.request.get('nombre'))) self.response.out.write("" Las partes anteriores de esta Guia: 1.- Guia Python: intro, variables, operadores y estructuras. 2.- Guia Python: funciones, estructuras y formatos. 3.- Guia Python: implementación de módulos y funciones. 4.- Guia Python: métodos constructores de una clase. 5.- Guia Python: redefinición de los operadores matemáticos. 6.- Guia Python: diccionarios, cadenas y listas como objetos 7.- Guia Python: archivos de texto y App Engine.
Datos archivados del Taringa! original
85puntos
583visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

H
Hugo1954🇦🇷
Usuario
Puntos0
Posts240
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.