![]() |
Bibliotecas de terceros en hospedaje compartido
Aquí la segunda parte del uso de python en hospedaje compartido, la primera parte está aquí.
Ahora veremos algo con mas posibilidades que simplemente el "Hola Mundo" de la primera parte. Se trata de utilizar bibliotecas de terceros dentro de nuestro proyecto en un hospedaje compartido sin que estas bibliotecas hayan sido instaladas previamente por root, sino que utilizando un directorio local/privado de paquetes python. Esta no es la mejor*1 forma de hacerlo pero opté por ella porque para fines didácticos es la mas fácil y funcional, además de que será el punto de partida para una siguiente fase, un poquito mas avanzada. El objetivo ahora es poder utilizar un framework web de python que sea el punto de partida para realizar una aplicación web cualquiera utilizando bibliotecas de terceros. Una herramienta muy fácil de utilizar es web.py, un framework bastante sencillo como poderoso. De él conozco muy poco, pero lo poco que conozco es suficiente para lo que necesitamos. La aplicación web que propongo no tendrá una funcionalidad muy útil que digamos y mucho menos será nada avanzado, puesto que, lo que nos interesa ahora es utilizar bibliotecas de terceros y empezar a hacer algo dinámico para partiendo de esto lleguemos a hacer algo mas útil donde utilicemos Bases de Datos, usuarios, servicios externos, etc... Entonces, dejando claro esto, me parece conveniente hacer una utilidad que realice operaciones matemáticas según parámetros de url. Como dije arriba, nada complicado ni útil, pero si didáctico. Partiendo de la primera parte de este tutorial, creamos un nuevo archivo .py que será el cgi de esta aplicación, llamémosle mate.py, quedándonos entonces una url como: http://midominio.com/cgi-bin/mate.py Agreguemos a este archivo el mismo código del primer tutorial, con el fin de asegurarnos que nos funciona como el anterior y partamos de allí. Código:
#!/usr/bin/env python Prerequisitos Antes que nada debemos saber que prerequisitos tienen los paquetes que vamos a utilizar porque debemos descargarlos manualmente*2 ya que de momento no contamos con un gestor de paquetes. Como vamos a utilizar webpy, este sería el primer paquete, además, webpy tiene como prerequisito otro paquete llamado flup. Los links para las versiones estables en este momento son: Webpy - http://webpy.org/static/web.py-0.37.tar.gz Flup - http://pypi.python.org/pypi/flup/1.0.2 Estos paquetes vienen con la estructura estandar de paquetes python pero como ahora no tenemos un gestor de paquetes debemos fijarnos bien sobre que es lo que vamos a subir al servidor para que funcione como esperamos (pues de lo contrario no funcioanrá nada). En este caso, estos paquetes tienen en su interior un directorio llamado web y flup respectivamente, estos son los directorios que nos interesan. Extraigamos el contenido de estos paquetes y copiemos los directorios web y flup dentro del cgi-bin (se que no es lo mas indicado, pero como dije antes, es solo para fines didácticos) quedándonos ahora una estructura de directorios parecida a esta: Código:
/cgi-bin/ Código:
#!/usr/bin/env python URLs limpias Como esta aplicación actuará dependiendo de la url que el usuario ingrese, no me gusta para nada que la url base sea "/cgi-bin/mate.py", en cambio, prefiero utilizar el prefijo "/mate/" de modo que me permita tener múltiples aplicaciones configuradas en un mismo dominio/ip. Para ello recurrimos al ModRewrite de apache y agregamos al .htaccess algo como esto: Código:
RewriteEngine on También debemos configurar las urls de nuestra aplicación para incluir el prefijo puesto que webpy hace un match sobre la url completa. Lo dejamos de la siguiente manera: Código:
urls = ( Ahora es tiempo de agregar las operaciones que realizará nuestra utilidad matemática, primero nos vamos por las urls. Código:
urls = ( Cita:
Código:
class suma: Cita:
Código:
def response(r): Código:
class cubo: Código:
help = ''' Código:
#!/usr/bin/env python Notas
|
Unas notas:
1) Porque no usas las funciones matematicas de python? 2) Una definicion tipo Código PHP:
Código PHP:
3) La expresion regular se puede mejor cambiando a "\d+". "\d" solo capura numeros, "+" se asegura que haya al menos 1 numero que capturar, en cambio "*" dice, captura tenga o algo que capturar. 4) Si encierras con etiqueta [php] masomenos te da un coloreado parecido para python ;) Por lo demas, gracias por el aporte! |
Cita:
Cita:
Código PHP:
Cita:
Cita:
Cita:
Saludos |
Muchas gracias D-MO, mañana lo leeré con calma.
// Saludos |
ufff... un curso acelerado, habrá que ponerse con ello :)
Gracias. |
La franja horaria es GMT +2. Ahora son las 19:05:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi