User Tools

Site Tools


apuntes:aplicaciones_web

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:aplicaciones_web [2018/02/01 18:25] – [Informes] Santiago Faciapuntes:aplicaciones_web [2019/06/12 16:08] (current) – [Definir el modelo y configurar la Base de Datos] Santiago Faci
Line 43: Line 43:
  
 <code bash> <code bash>
-santi@zenbook:$ pip install django+santi@zenbook:$ pip install django==1.11.8
 </code> </code>
  
Line 183: Line 183:
     'django.contrib.messages',     'django.contrib.messages',
     'django.contrib.staticfiles',     'django.contrib.staticfiles',
 +    'mispeliculas',
 ] ]
  
Line 991: Line 992:
 username = request.POST['username'] username = request.POST['username']
     password = request.POST['password']     password = request.POST['password']
-    user = authenticate(username=username, password=password)+    user = authenticate(request, username=username, password=password)
     if user is not None:     if user is not None:
         login(request, user)         login(request, user)
Line 1056: Line 1057:
  
 ===== Informes ===== ===== Informes =====
 +
 +Para la creación de informes con Django utilizaremos la librería [[http://www.reportlab.com|reportlab]] que permite generar ficheros PDF con lenguaje Python.
 +
 +El primer paso será instalar el paquete ''reportlab'' con la herramienta de instalación de paquetes de Python o bien desde el IDE PyCharm directamente.
  
 <code bash> <code bash>
 santi@zenbook:$ pip3 install reportlab santi@zenbook:$ pip3 install reportlab
 </code> </code>
 +
 +A continuación se muestran algunos ejemplos de uso de esta librería para la generación de informes. Conviene tener en cuenta que en éstos, se muestra solamente el código corresponde a la función que permite crear la ''view'' que lanzará el informe al usuario. Faltaría registrar la correspondiente url en el fichero ''urls.py'' de nuestra aplicación web y también añadir un enlace o botón en la plantilla donde queramos que el usuario tenga que pinchar para visualizar este informe.
 +
 +En este primer ejemplo se creará un informe (en PDF) donde se mostrará un título y a continuación un listado con los títulos de todas las películas de la Base de Datos. En este caso utilizaremos el objeto ''Canvas'' que nos permite ubicar los elementos del informe utilizando las coordenadas x e y para situarlos. Hay que tener en cuenta que la esquina inferior izquierda se corresponde con los valores ''x=0'' e ''y=0''.
  
 <code python views.py> <code python views.py>
Line 1088: Line 1097:
 . . . . . .
 </code> </code>
 +
 +En este segundo ejemplo, utilizando en este caso el objeto ''SimpleDocTemplate'', que permite añadir contenido al documento del informe si necesidad de indicar las coordenadas explicitamente. En este caso se genera una tabla (con borde) con el listado de las películas y cierta información sobre las mismas.
  
 <code python views.py> <code python views.py>
Line 1115: Line 1126:
 . . . . . .
 </code> </code>
 +
 +Podéis encontrar más información en esta [[https://www.reportlab.com/docs/reportlab-userguide.pdf|Guía de reportlab]]
 ===== Internacionalización ====== ===== Internacionalización ======
  
Line 1175: Line 1188:
  
  
-==== Utilizando WSGI ====+==== Utilizando WSGI con Apache ====
  
 En este apartado veremos como desplegar una aplicación web Django con Apache usando el módulo WSGI. Para ello tendremos que realizar una serie de ajustes, instalación y configuraciones: En este apartado veremos como desplegar una aplicación web Django con Apache usando el módulo WSGI. Para ello tendremos que realizar una serie de ajustes, instalación y configuraciones:
Line 1305: Line 1318:
 Y ahora podrás visitar tu aplicación web Django accediendo directamente a ''http://mispeliculas.com'' Y ahora podrás visitar tu aplicación web Django accediendo directamente a ''http://mispeliculas.com''
  
 +==== Desplegar la aplicación utilizando entornos virtuales ====
  
 +
 +<code bash>
 +santi@zenbook:$ pip3 install virtualenv
 +santi@zenbook:$ virtualenv env
 +santi@zenbook:$ source env/bin/activate
 +. . .
 +santi@zenbook:$ pip install django
 +santi@zenbook:$ pip install Pillow
 +. . .
 +santi@zenbook:$ deactivate
 +</code>
 +
 +<file apache /etc/apache2/sites-available/mispeliculas.com.conf>
 +. . .
 +    WSGIDaemonProcess peliculas python-path=/home/santi/mispeliculas.com:/home/santi/mispeliculas.com/env/lib/python3.5/site-packages
 +. . .
 +</file>
 ===== Ejercicios ===== ===== Ejercicios =====
    
Line 1335: Line 1366:
 ---- ----
  
-(c) 2017 Santiago Faci+(c) 2018 Santiago Faci
apuntes/aplicaciones_web.1517509539.txt.gz · Last modified: 2019/01/04 13:22 (external edit)