Mostrando entradas con la etiqueta framework. Mostrar todas las entradas
Mostrando entradas con la etiqueta framework. Mostrar todas las entradas

viernes, 29 de enero de 2010

Web.py con Apache WSGI

Seguimos con nuestra serie de contenidos instructivos para web.py y en esta ocasión veremos la manera de integrar este framework a Apache, el servidor web predilecto de internet.




- Recordemos que estamos comenzando apartir de una instalación limpia de Ubuntu 9.10, pero eso sí debidamente actualizada empleando:
    sudo apt-get update
    sudo apt-get upgrade


- Necesitamos el servidor apache y para obtenerlo podemos instalar el conjunto LAMP (Linux, Apache, MySQL y PHP) o solamente los paquetes requeridos: apache2 y el mod-wsgi
    LAMP:
    sudo tasksel install lamp-server
    *Al seleccionar este se nos pedirá una clave de administrador para MySQL y su confirmación, escoge una y apúntala
   
    BASICO:
    sudo apt-get install apache2 libapache2-mod-wsgi
   
- Activamos el módulo wsgi
    a2enmod wsgi
    *Este módulo puede estar ya activo, así que esto es sólo una medida de precaución
   
- Creamos un directorio en donde nos parezca, aunque en este caso lo haré dentro de /var/www
    sudo mkdir /var/www/webpy-app
    *También un directorio interno static
    sudo mkdir /var/www/webpy-app/static
   
- Editamos la configuración por defecto del apache2 para incluir el acceso a nuestra aplicación web.py
    sudo vim /etc/apache2/sites-available/default
    *Agregamos las siguientes líneas, mientras sean antes del tag </VirtualHost>

    #....
    WSGIScriptAlias /main /var/www/webpy-app/main.py/
    
    Alias /main/static /var/www/webpy-app/static/
    AddType text/html .py

    <Directory /var/www/webpy-app/>
            Order deny,allow
            Allow from all
    </Directory>
    #....


    *Grabamos y reiniciamos el servicio
    sudo /etc/init.d/apache2 restart
    * También podemos hacerlo con: sudo service apache2 restart

- Dentro de webpy-app copiamos o re-escribimos el archivo que empleamos en el primer post sobre web.py, pero haciendo unas pequeñas modificaciones
    sudo vim /var/www/webpy-app/main.py
    *El programa debe quedar así


import web

urls = (
  '/','index',
  '/informacion','informacion',
  )

application=web.application(urls, globals()).wsgifunc()

class index:
  def GET(self):
    return "<html><body><h1>Pagina Principal</h1><br><a href='/main/informacion'>Pagina Auxiliar</a></body></html>"

class informacion:
  def GET(self):
    return "<html><body>Pagina Secundaria<br><a href='/main'>Principal</a></body></html>"

#if __name__ == '__main__':
#  app.run()


- Abrimos el browser y accedemos a http://localhost/main
    *Ya podemos empezar a jugar con las URLs dentro de apache
   
En una siguiente entrega veremos aspectos más interesantes de web.py, como trabajar con vistas e incluso hacer un sitio web rápidamente

jueves, 28 de enero de 2010

Desarrollo web minimalístico con web.py

Web.py es un framework de desarrollo minimalístico y altamente funcional que nos permite desarrollar rápidamente aplicaciones web empleando python, por lo que comenzaré con algunos tutoriales que permitan a los interesados explorar este interesante módulo.

En el video incluído comienzo con una instalación virgen de Ubuntu Jaunty por lo que se siguen los siguientes pasos:





- Instalar el paquete python-setuptools, para así poder acceder a easy_install y e instalar diversos módulos python con simplicidad
    sudo apt-get install python-setuptools

- Empleando easy_install procedemos a instalar el módulo web.py
    sudo easy_install web.py

- Instalamos algún editor, en este caso geany (visual en gvtk) y vim (consola)
    sudo apt-get install geany vim

- Creamos un directorio en algún lugar, en este caso mi carpeta personal
    mkdir webpy-demo

- Dentro del directorio, creamos un archivo que nos permita dar inicio a nuestra aplicación: main.py
    cd webpy-demo
    vim main.py

- Presionamos la tecla (INSERT) y comenzamos a escribir el código:
 


import web

urls = (
  '/','index',
  '/informacion','informacion',
  )

app=web.application(urls, globals())

class index:
  def GET(self):
    return "<html><body><h1>Pagina Principal</h1><br><a href='informacion'>Pagina Auxiliar</a></body></html>"

class informacion:
  def GET(self):
    return "<html><body>Pagina Secundaria<br><a href='/'>Principal</a></body></html>"

if __name__ == '__main__':
  app.run()


 
    * Se invoca al módulo
    * Se define una tupla con las rutas de la aplicación
    * Se instancia al módulo
    * Se definen las clases, una por URL, empleando el método GET y retornando código HTML
    * Se accede al método run() para indicar que se inicie el servidor web integrado

- Ejecutamos la aplicación
    python main.py
    * Veremos que se inicia un servicio en el puerto 8080

- Abrimos el navegador, ponemos la dirección local seguida por el puerto y ya podemos acceder a nuestra sencilla aplicación
    http://localhost:8080
   
En unos minutos hemos desarrollado una sencilla aplicación, pero en los siguientes días exploraremos aún más las diversas potencialidades que nos ofrece web.py, incluyendo la manera de integrarlo a Apache.