Sei sulla pagina 1di 19

Extra

Introducción a Django

www.imaginaformacion.com © Imagina Formación


¿Qué es Django?
• Se trata de un framework para desarrollo web escrito en Python
(interpretado, multiplataforma y orientado a objetos).

• Es de código abierto y sigue el patrón Model-Template-View (MTV), muy


similar a Model-View-Controller (MVC)

• Fue desarrollado en su origen para gestionar varias páginas orientadas a


noticias de la World Company de Lawrence, Kansas, siendo liberado al
público en Julio de 2005.

• Fue nombrado Django en alusión al guitarrista de jazz Django Reinhardt

• Django pone énfasis en la reutilización, la conectividad y extensibilidad


de componentes, el desarrollo rápido y el principio No te repitas (DRY).

• Python es usado en cualquier estructura del framework, incluso en


configuraciones, archivos y en el modelo de datos.

www.imaginaformacion.com © Imagina Formación


Patrón MTV

• Es un patrón muy típico y se puede ver en muchos de los frameworks de


desarrollo web modernos.

• Modelo: hace referencia a los datos que manejará nuestro sitio, las
tablas de nuestra base de datos (MySQL, Sqlite3, PostgreSQL…)

• Plantillas: es todo lo referente a la representación de estos datos en


nuestro sitio. HTML+CSS+JS

• Vistas: los controladores que rellenan las plantillas.

www.imaginaformacion.com © Imagina Formación


Instalación
• Django funciona sobre las versiones 2.7, 3.2 o 3.3 de Python.

• Con la herramienta de gestión de paquetes para Python pip, podemos


instalar Django de forma sencilla sobre Windows, Mac OS y Linux.

• Dentro de la instalación genérica de Python, con sus últimas versiones,


suelen incorporar la herramienta pip, dentro de la carpeta Scripts.

www.imaginaformacion.com © Imagina Formación


Instalación

• Si no tenemos instalada la herramienta pip, siempre podemos descargar


el script get-pip-py con permisos de administrador y ejecutarlo.

• python get-pip.py

• También está disponible a través de gestores de paquetes en Linux como


apt-get para Debian o yum en Fedora

www.imaginaformacion.com © Imagina Formación


Instalación

• Cuando hemos comprobado que pip está correctamente instalado,


podemos proceder a la instalación de Django en el sistema:

• Plataformas Windows: pip install Django

• Plataformas OSX / Linux: sudo pip install Django

• La comprobación más sencilla para saber si hemos instalado


correctamente Django sería la ejecución del siguiente comando en la
consola.

python -c "import django; print(django.get_version())"

www.imaginaformacion.com © Imagina Formación


Proyecto Django
• Un proyecto es una colección de ajustes para una instancia de Django,
incluyendo la configuración a la base de datos, opciones específicas de
Django y ajustes específicos de aplicación.

• Una vez creado el directorio donde alojar los proyectos, nos situamos en
su interior mediante la consola de comandos y ejecutamos el siguiente
comando:

django-admin.py starproject mysite

• Esta ejecución nos crea un directorio con la siguiente estructura.

mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py

www.imaginaformacion.com © Imagina Formación


Proyecto Django
• Los módulos y directorios creados son:

• mysite/: el directorio mysite superior es el contenedor del proyecto. El


nombre no es importante para Django. Se puede renombrar.

• manage.py: Script que permite interactuar con Django de varias


maneras mediante línea de comandos. Ejecuta python manage.py help
para obtener más información.

• mysite/mysite/: el directorio mysite interior el paquete Python para tu


proyecto. Su nombre es importante ya que será el que utilizaremos para
importarlo: import mysite.settings

• __init__.py: Archivo necesario para que Python reconozca mysite como


paquete.

www.imaginaformacion.com © Imagina Formación


Proyecto Django

• settings.py: Ajustes y configuración para el proyecto Django actual.

• urls.py: Las URLs para el proyecto Django actual. Es como la tabla de


contenidos del proyecto.

• wsgi.py: es el punto de entrada para los servidores compatibles con


WSGI, para servir el proyecto. Más información en https://
docs.djangoproject.com/en/1.7/howto/deployment/wsgi/

www.imaginaformacion.com © Imagina Formación


Configurar la base de datos
• Para tener lista nuestra base de datos, debemos editar el módulo mysite/
settings.py. Por defecto la configuración está preparada para usar
SQLite. Es la forma más sencilla de desarrollar ya que no hay que instalar
nada más. El soporte SQLite está incluido en Python.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

• Si queremos configurar otros gestores de BBDD, debemos editar la


variable DATABASES.

ENGINE: django.db.backends.sqlite3, django.db.backends.postresql_psycopg2,


django.db.backends.mysql, django.db.backends.oracle
NAME: Nombre de tu base de datos.

www.imaginaformacion.com © Imagina Formación


Configurar la base de datos
• En la parte de arriba del módulo settings.py encontramos la lista
INSTALLED_APPS. En ella encontraremos las aplicaciones instaladas por
defecto en django, por ejemplo, para la creación de un panel de
administración (django.contrib.admin), para el manejo de sesiones
(django.contrib.sessions) entre otras.

• Algunas de estas aplicaciones instalan como mínimo una tabla en la base


de datos, de tal manera que necesitamos crear dichas tablas una vez
elegido y configurado nuestro sistema gestor de base de datos:

• python manage.py migrate

www.imaginaformacion.com © Imagina Formación


Proyectos vs Aplicaciones

• En Django el término proyecto describe una instalación de Django y está


definido en modo primario por el módulo settings.py

• El término aplicación describe un paquete de Python que provee un


conjunto de características. Las aplicaciones pueden ser usadas en otros
proyectos y los proyectos pueden contener muchas aplicaciones.

• Esta terminología puede ser confusa en tanto que se ha generalizado la


concepción de que web app equivale a proyecto.

www.imaginaformacion.com © Imagina Formación


Crear aplicaciones
• Para crear aplicaciones, nos situamos en el directorio del proyecto y
ejecutamos el siguiente comando:

python manage.py startapp nombreapp

• Una vez ejecutado, se habrá generado la siguiente estructura dentro del


proyecto:

nombreapp/
__init__.py
admin.py
migrations/
__init__.py
models.py
tests.py
views.py

www.imaginaformacion.com © Imagina Formación


Contenido de la aplicación

• Los módulos y directorios creados para la aplicación son:

• nombreapp/: el directorio que empaqueta todo el código y la


configuración propia de cada aplicación

• admin.py: en este módulo registraremos los modelos sobre los que se


basará la aplicación de administración para generar el panel de
administración web.

• models.py/: el módulo donde de definimos los modelos de datos sobre


los interactuará nuestra aplicación. Este módulo es el que utiliza Django
para crear las tablas de la base de datos.

• tests.py: módulo sobre el que programaremos los tests que validarán el


buen funcionamiento de la aplicación.

www.imaginaformacion.com © Imagina Formación


Contenido de la aplicación

• views.py: en éste módulo ubicaremos la lógica de gestión de nuestra


app.

• migrations/: en este directorio se ubicaran todos los cambios que se


produzcan en el modelo de datos como versiones de los diferentes
estados de la base de datos. Gracias a ello podemos actualizar,
recuperar o migrar nuestro modelo de datos independientemente del
SGBD

www.imaginaformacion.com © Imagina Formación


Django Admin Site
• Para ciertos tipos de sitios web, un panel de administración es una parte
esencial de la infraestructura. Se trata de una interfaz web para
administración, limitada a usuarios autorizados, que permite añadir,
editar y eliminar contenido del sitio.

• Un ejemplo sería un blog, donde desde el interfaz de administración se


podría moderar comentarios, editar posts y publicar o despublicar
contenido.

• Django provee de una aproximación para no tener que realizar esta


tediosa y aburrida tarea. En primer lugar debemos comprobar que la
siguiente línea en el módulo urls.py no esté comentada:

urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Ejercicio1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
)

www.imaginaformacion.com © Imagina Formación


Django Admin Site

• Una vez habilitada la url para acceder, arrancamos el servidor


posicionándonos en el directorio desde la línea de comandos y
ejecutando:

python manage.py runserver

127.0.0.1:8000/admin/

www.imaginaformacion.com © Imagina Formación


Django Admin Site
• Para crear un usuario con credenciales para poder acceder al panel de
administración, debemos crear uno con el siguiente comando, ejecutado
desde el directorio raíz del proyecto:

• python manage.py createsuperuser

• Durante la ejecución del comando nos pedirá la información necesaria


para autenticar (nombre de usuario, correo electrónico y contraseña). Al
terminar ya podremos acceder.

www.imaginaformacion.com © Imagina Formación


Django Admin Site

• Si además queremos poder añadir, editar y eliminar objetos


pertenecientes a clases de nuestro propio modelo, podemos utilizar este
panel de administración. Para ello añadimos las clases de nuestro
modelo en el módulo admin.py ubicado dentro del paquete de una
aplicación:

from django.contrib import admin # Módulo admin.py


from mysite.nombreapp.models import Clase1, Clase2 Clase3

admin.site.register(Clase1)
admin.site.register(Clase2)

www.imaginaformacion.com © Imagina Formación

Potrebbero piacerti anche