Sunteți pe pagina 1din 12

Tecnología de Programación V Ciclo

Django
Framework web de Python

Es un framework de desarrollo web que provee una infraestructura de


programación para las aplicaciones , es de código abierto, el cual ha sido escrito con
Python acorde al paradigma Model Template View, fue nombrado así en referencia al
guitarrista de jazz gitano Django Reinhardt. Django se centra en automatizar todo lo
posible y se adhiere al principio “Don't Repeat Yourself”. Permite construir en
profundidad, de forma dinámica, sitios interesantes en un tiempo extremadamente
corto.

Django es un conjunto de bibliotecas y herramientas que nos van a permitir


crear sitios web de forma más rápida y con menos código, ya que nos proporciona
muchas aplicaciones útiles para cosas comunes del desarrollo web, como
autenticación de usuarios o administración del contenido del sitio, entre otras, también
podemos encontrar aplicaciones de terceros para reutilizar y modificar código.

Historia

A continuación se presenta brevemente información acerca de la aparición y


evolución de Django:

Apareció el año 2003, cuando un equipo de desarrolladores web del diario


Lawrence Journal World: Adrian Holovaty y Simon Willison, comenzaron a usar
Python para crear sus aplicaciones. El equipo de The World Online, responsable de la
producción y mantenimiento de varios sitios locales de noticias, prosperaban en un
entorno de desarrollo presionados por las fechas límite del periodismo, es así que los
periodistas y directivos exigían que se agregaran nuevas características y que
aplicaciones enteras se crearan a una velocidad vertiginosa, es así que Adrian y
Simon desarrollaron por necesidad un framework de desarrollo Web que les ahorrara
tiempo, era la única forma en que podían crear aplicaciones mantenibles en tan poco
tiempo. Luego en el año 2005, luego de haber desarrollado este framework hasta el
punto en que estaba haciendo funcionar la mayoría de los sitios World Online, que
ahora incluía a Jacob Kaplan Moss, liberó el framework como software de código
abierto.

Estructura de un sitio web

En Django tenemos Proyectos y Aplicaciones:


a) Proyecto: va a contener la configuración general de nuestro sitio (la base de
datos, email de los admins, etc.) y un conjunto de aplicaciones.
b) Aplicaciones: van a ser las que tengan la funcionalidad en sí de nuestro sitio.

Proyecto

Aplicación Aplicación Aplicación


. . . .

Ing. Ricardo More Reaño 1


Tecnología de Programación V Ciclo

Arquitectura MVC(Modelo-Vista-Controlador)

Esta arquitectura separa las aplicaciones en tres partes y Django propone


utilizarla:

Modelo: Define la estructura de la base de datos y se encarga de la


comunicación con ella.
Vista: la interfaz del usuario, con el código que elije qué datos pedirle o
mostrarle en cada momento.
Controladores: esta parte permite seleccionar qué vistas ejecutar en
respuesta a las acciones o peticiones del usuario.

Instalación de Python
Como nosotros utilizamos ubuntu ya tenemos instalado python, pues lo vimos
en la sesión anterior y lo podemos verificar escribiendo en una terminal: python

Descarga e instalación de Django


En una terminal escribimos como se muestra a continuación:
1) wget http://media.djangoproject.com/releases/1.3/Django-1.3.1.tar.gz

Si observamos nuestra carpeta personal nos daremos cuenta que se ha


descargado: Django-1.3.1.tar.gz

2) sudo tar zxvf Django-1.3.1.tar.gz

Ing. Ricardo More Reaño 2


Tecnología de Programación V Ciclo

Si observamos nuestra carpeta personal nos daremos cuenta que después de


descomprimir tenemos:

3) cd "Django-1.3.1"

Ahora estamos en la carpeta Django-1.3.1

4) sudo python setup.py install

Verificación de la instalación

Vamos a constatar si django está correctamente instalado, para eso


accedemos a la shell de comandos e iniciamos el interprete python e importamos
django escribiendo: import django y luego mostrar la versión instalada con
django.VERSION

Descargar e instalar el conector de base de datos

Nosotros utilizaremos como servidor de base de datos mysql(se puede


realizar con otros), que es el que ya tenemos instalado en nuestros equipos, lo que
implica trabajar con el conector MySQLdb.

Primero se instalará los paquetes con los cuales tiene dependencias, estos
son: setuptools y libmysqlclient-dev.

Ing. Ricardo More Reaño 3


Tecnología de Programación V Ciclo

a) setuptools

wget pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz

Se ha descargado el archivo en la carpeta personal.

sudo tar zxvf setuptools-0.6c11.tar.gz

Se descomprime.

cd setuptools-0.6c11/

Nos ubicamos en la carpeta setuptools-0.6c11/

sudo python setup.py install

Se instala.

b) libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

c) MySQLdb

sudo apt-get install python-mysqldb

Ing. Ricardo More Reaño 4


Tecnología de Programación V Ciclo

También podemos hacerlo instalando el paquete

MySQLdb desde http://www.djangoproject.com/r/python-mysql/

Verificación de la instalación

Vamos a constatar si MySQLdb está correctamente instalado, para eso


accedemos a la shell de comandos e iniciamos el interprete python e importamos
MySQLdb escribiendo: import MySQLdb y luego MySQLdb.__doc__

PROYECTO

Un proyecto es una colección de configuraciones para una instancia de Django,


incluyendo configuración de base
de datos, opciones específicas de Django y configuraciones específicas de
aplicaciones.

 En primer lugar vamos a crear un directorio(carpeta) con el nombre más


adecuado, en nuestro caso: sitio_web
 Nos ubicamos en el directorio actual.

 En una terminal escribir: django-admin.py startproject prueba

Ing. Ricardo More Reaño 5


Tecnología de Programación V Ciclo

se ha creado nuestro proyecto en el directorio sitio_web.

Al abrir el proyecto podemos apreciar los siguientes archivos, de los cuales se


hace una breve descripción:

• __init__.py: Un archivo necesario para que Python trate el directorio ejemplo


como un paquete (un grupo de módulos de Python). Es un fichero vacío y
normalmente no se le añade nada.
• manage.py: Script que permite interactuar con el proyecto de Django de
diversas maneras.
• settings.py: Características de configuración de este proyecto Django.
• urls.py: Las direcciones URL de este proyecto Django. Piense en ello como la
“tabla de contenidos” de su sitio Django.

Servidor de desarrollo
Django tiene su propio servidor de desarrollo que permite probar las
aplicaciones de forma eficiente de forma local, el que podemos utilizar antes de
hacerlo con uno de producción como apache por ejemplo.
Vamos a correr el servidor web de desarrollo para determinar si funciona,
tenemos primero que ubicarnos en nuestro directorio(prueba) y luego en el mismo
terminal escribir:
python manage.py runserver

Ing. Ricardo More Reaño 6


Tecnología de Programación V Ciclo

En un navegador la url:
http://localhost:8000
También puede ser:
ttp://127.0.0.1:8000

Debe mostrarse la siguiente página:

 En el proyecto vamos a crear dos nuevas carpetas(directorios) los que se


llamarán: static y templates

En una terminal escribir: mkdir static y mkdir templates, primero hay que
cambiarnos a nuestro directorio(prueba).

 Dentro del directorio prueba se han creado static(contenido estático) y


templates(plantillas) como se aprecia en la siguiente imagen:

Ing. Ricardo More Reaño 7


Tecnología de Programación V Ciclo

 Abrir el archivo settings.py con un editor de texto que puede observarlo en la


imagen anterior y agregar en la parte superior lo siguiente: import os.path

 En el mismo el archivo ubicar la variable: STATICFILES_DIRS y agregar lo


siguiente:
os.path.join(os.path.dirname(__file__), 'static').replace('\\','/'),

 En el mismo el archivo ubicar la variable: TEMPLATE_DIRS y agregar lo


siguiente:
os.path.join(os.path.dirname(__file__),'templates').replace('\\','/'),

 Dentro del directorio static vamos a crear una una hoja de estilos de nombre:
forma(forma.css), el cual va a tener el siguiente código:

body {
color: #bfaa28;
background: #453669;
padding: 0 2em;
margin: 0;
font-family: FreeSerif;
font-size: 120%;

Ing. Ricardo More Reaño 8


Tecnología de Programación V Ciclo

h1 {
padding: 20px 30px;
background: #675fff;
color: #ffa232;
font-size: 150%;
text-align: center
}

h2 {
color: #bf8aaa;
border-top: 1px dotted #ffffff;
margin-top: 2em
}

p{
margin: 1em 0
}

a:link {
color: #fe5122;
}

a:visited {
color: #fe5121;
}

a:hover {
color: #fe5aaa;
}

hr {
margin: 20px 0px;
color: #bbdcdd;
background-color: #efa1ff;
height: 4px;
}

footer {
font-size: 80%;
color: #ffa567;
text-align: center;
}

Ing. Ricardo More Reaño 9


Tecnología de Programación V Ciclo

 Dentro del directorio templates vamos a crear un archivo html de nombre:


ejemplo(ejemplo.html), el cual va a tener el siguiente código:

<html lang="es">

<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{{ STATIC_URL }}forma.css"/>
<title>{% block titulo %}Sin título{% endblock %}</title>
</head>

<body>
{% block principal %}Sin cuerpo{% endblock %}
<hr/>
<footer>
Ingeniería de Sistemas V Ciclo
</footer>
</body>

</html>

 Crear una aplicación que tendrá por nombre bienvenida, la misma que se
ubicará dentro de nuestro proyecto. En una terminal escribir(tenemos que estar
dentro de nuestro proyecto):

python manage.py startapp bienvenida

Dentro del proyecto tenemos:

Ing. Ricardo More Reaño 10


Tecnología de Programación V Ciclo

 Se crea la función de vista que enviará la información a la plantilla.


Tenemos que editar el archivo views.py que se encuentra dentro la aplicación
bienvenida en nuestro proyecto prueba. Se debe agregar lo siguiente:

from django.shortcuts import render

def presenta(request):
return render(request, 'saludo.html', {'nombre': 'Estudiantes de la
Escuela Profesional ...'})

 En el directorio templates vamos a crear el archivo html de nombre


saludo(saludo.html), con el siguiente contenido:

{% extends "ejemplo.html" %}
{% block titulo %}Tema 12{% endblock %}
{% block principal %}
<h1>Bienvenidos {{ nombre }}!</h1>
<p>
Aplicación web utilizando el framework Django.
</p>
{% endblock %}

En la imagen se aprecia “saludo.html”

Ing. Ricardo More Reaño 11


Tecnología de Programación V Ciclo

 Vamos a relacionar la función de vista con un patrón URL. Tenemos que


editar el archivo urls.py de nuestro proyecto agregando:

(r'^bienvenida/$', 'prueba.bienvenida.views.presenta'),

 En su navegador escribir: http://localhost:8000/bienvenida/

Ing. Ricardo More Reaño 12

S-ar putea să vă placă și