PYTHON CON DJANGO
Estudio
Página |1
Requisitos
Instalación Python:
Se descarga e instala directamente desde la página oficial https://www.python.org.
No olvide seleccionar las dos opciones de la parte inferior en el proceso de instalación.
Página |2
Instalación Visual Studio Code
Se descarga e instala directamente desde la página oficial https://code.visualstudio.com/.
Instalación Pip
Pip es el gestor de paquetes de Python, y su instalación se realiza normalmente con el mismo Python, para
asegurarnos de que está instalado y de su versión ejecute:
pip --version
En caso de no estarlo, ejecute:
python -m ensurepip --default-pip
donde:
python determina la ejecución del interprete propio del lenguaje.
-m indica que debe ejecutar un módulo como script y no un archivo.
ensurepip se asegura que pip no este instalado, y de ser así lo instala.
--default instala la versión por defecto que se adapte mejor a la versión Python.
-pip es el módulo a instalar.
Instalación Virtualvenv
Lo siguiente seria la instalación de virtualenv, el cual nos ayuda a generar entornos aislados para nuestros
proyectos.
pip install virtualenv
una vez creado el proyecto e instalado virtualvenv, se le genera un entorno virtual y se activa (por lo general
el nombre del entorno es env).
python -m venv [nombre entorno]
[nombre entorno]\Scripts\activate
Una vez activo el entorno virtual, cualquier comando que se ejecute (como pip install) afectara solamente
a el entorno del proyecto, y no al global. Para desactivarlo se debe ejecutar:
Página |3
deactivate
Instalación Django
Una vez activo nuestro entorno virtual podemos ejecutar el siguiente comando para la instalación de Django:
pip install django
y para validar su instalación:
django-admin –version
Instalarlo también en el entorno virtual del proyecto
Creación Proyecto Django
Para crear un nuevo proyecto en Django se debe ejecutar:
django-admin startproject [nombre proyecto]
debe obtenerse un sistema de carpetas como el siguiente:
Archivo requirements.txt
El archivo requirements.txt es un archivo de texto que contiene una lista de todas las dependencias
(paquetes o bibliotecas) de un proyecto en Python, junto con sus versiones especificadas, si es necesario.
Este archivo permite a los desarrolladores (incluyendo al creador) instalar las mismas versiones de las
bibliotecas que está usando el proyecto, garantizando que todos trabajen con las mismas dependencias.
Para crearlo debemos ejecutar:
pip freeze > requirements.txt
y para instalar las dependencias allí inscritas:
Página |4
pip install -r requirements.txt
Creación Aplicación Django
Las aplicaciones en Django, son componentes modulares que contienen funciones relacionadas.
Para crearla debemos ejecutar:
python manage.py startapp [Nombre aplicacion]
debemos obtener un sistema de carpetas como:
Además, debemos crear un archivo urls.py, el cual nos ayudara con la definición de rutas url para la
aplicación.
Luego de creada la aplicación, debe registrarse dentro del proyecto, para que este la detecte.
Ingrese al archivo settings.py, busque la lista INSTALLED_APPS y agregue el nombre de la aplicación,
ejemplo:
Ejecución Aplicación
Para ejecutar la aplicación se debe ejecutar:
python manage.py runserver
El puerto por defecto será el 8000, si se desea un puerto especifico:
python manage.py runserver 8080
Página |5
Conectar con Db Mongo
Para aplicar una conexión a base de datos mongo, se debe instalar primero los paquetes por consola, con
los siguientes comandos:
pip install djongo
pip install pymongo
Luego, se tiene que hacer la configuración en el archive settings.py del proyecto:
Generacion de modelos y exportación a db
En nuestro archivo model, vamos a realizar la generación de modelos que luego serán exportados a la db
que se encuentre asociada.
Luego haremos la migración a base de datos:
Página |6
Con el siguiente comando, preparamos la migración:
python manage.py makemigrations
y luego para ejecutar la migración escribimos en consola:
python manage.py migrate
Creación de super usuario y administración del sitio
El super usuario nos ayudara a trabajar con la interfaz grafica de Django.
Para crearlo se debe ejecutar el siguiente comando:
python manage.py createsuperuser
Y posterior ingresar las credenciales solicitadas.
Hecho esto, debemos registrar en el archivo admin.py los modelos generados:
Para validar la correcta ejecución, corremos el proyecto e ingresamos a http://127.0.0.1:8000/admin/
con las credenciales definidas en el proceso anterior.
Y desde allí por medio de la interfaz gráfica podremos manipular la información de las tablas.
Página |7
Creación de vistas basadas en funciones (fbv) y enrutamiento
Cuando ingresamos al localhost estaríamos ejecutando directamente el proyecto, sin embargo, según
nuestra estructura deseamos ejecutar las funcionalidades que están en nuestras aplicaciones, entonces, en
urls.py del proyecto vamos a hacer el enlace a la url de la aplicación, para esto debemos importar la
funcionalidad include y asignar un nuevo path.
Ahora, debemos construir nuestras funciones en la aplicación. De acuerdo al esquema, estas funciones
deberán estar en el archivo views.py.
Estas vistas recibirán una request http, y devolverán una response http.
por el momento, que aun no hemos creado templates, vamos a devolver un texto puntual.
Y, por último, deberemos apuntar una url hacia la función nueva, desde urls.py de la aplicación.
Página |8
El resultado debería ser:
El sistema renderiza el string que estamos devolviendo, eso quiere decir que podemos renderizar html, por
ejemplo:
resultado:
Templates HTML
Dentro de la aplicación vamos a crear una carpeta llamada “templates”; es allí donde vamos a crear todos
nuestros archivos HTML
Página |9
Luego, para nuestro ejercicio crearemos una nueva función en nuestro archivo views, y le asignamos una
ruta en nuestro archivo urls, ejemplo:
Debemos tener en cuenta la importación de la funcionalidad render de la librería django.shortcuts, esto
nos ayudara a renderizar las plantillas HTML; también tendremos la opción de enviar data dinámica desde
la función hacia la plantilla.
Vamos a crear la plantilla index.html a la que apunta nuestra función y renderizamos con la data enviada,
para este caso el dato ‘usuario’.
El resultado sería:
P á g i n a | 10
Antes de continuar, debemos entender cómo podemos manipular y recibir la información dentro de las views.
Captura parámetros por URL
Si requerimos de parámetros por medio de la url, debemos modificar la ruta de acceso, para que tenga en
cuenta el dato a recibir.
En caso de requerir más de un parámetro, se separan por barra inclinada. En el ejemplo se esta tipando el
dato que espera (int), lo cual es una mejor práctica, pero también es posible, aunque no se recomienda no
tiparlo.
Recibimos también como parámetro en el view el dato esperado.
Controles de flujo
If, elif, else
Permite mostrar segmentos de la plantilla de acuerdo al cumplimiento de una condición.
P á g i n a | 11
En el anterior ejemplo, en caso de no encontrar ningún objeto autor, mostrara el segmento del else.
For
Permite mostrar segmentos repetitivos de acuerdo a listas existentes. Ejemplo:
El resultado seria:
P á g i n a | 12
Herencia de plantillas
Block y Extends
Es posible insertar una plantilla dentro de otra utilizando el sistema de herencia de Django. Para ello, es
importante entender que existirá una plantilla base o padre, y una o varias plantillas hijas que extenderán
su estructura.
La etiqueta {% block %} permite definir secciones en la plantilla padre que pueden ser personalizadas o
sobrescritas por las plantillas hijas. Así se determina qué partes del contenido pueden variar y dónde se
ubicarán.
Por otro lado, la etiqueta {% extends %} se utiliza en la plantilla hija para indicar que está heredando la
estructura de una plantilla padre, lo que permite reutilizar elementos comunes como encabezados, menús
o pies de página.
El block esta compuesto por un nombre que se le quiera otorgar, el extends por su parte esta compuesto
por la ruta de la plantilla padre.
{% block [nombre] %}
{% extends “[ruta plantilla padre]” %}
Plantilla padre:
P á g i n a | 13
Plantilla hija:
Resultado:
P á g i n a | 14
Include
Include también permite la inserción de una plantilla en otra, solo que esta inyecta la plantilla completa (no
por secciones block), además es posible pasar variables con la palabra reservada with. Ejemplo:
Plantilla padre:
P á g i n a | 15
Plantilla hija:
Resultado: