logo cosasdedevs
Aprende Django desde 0

Aprende Django desde 0

¡Hola! Si estás aquí es porque te preguntarás que es Django y porque deberías implementarlo en tus proyectos así que no voy a enrrollarme más y te voy a hablar de él. 

¿Qué es Django?

Django es un framework de código abierto y escrito en Python que está basado en el patrón de diseño MTV (Model Template View) para el desarrollo de páginas webs, aplicaciones y APIs (con Django REST Framework).

Porqué implementar este framework

  • Es rápido. Django fue diseñado para ayudarnos a desarrollar las aplicaciones desde el concepto hasta su finalización lo más rápido posible.
  • Es seguro. Django se toma la seguridad en serio y nos ayuda a evitar muchos errores de seguridad comunes.
  • Extremadamente escalable. Algunos de los sitios más activos de la Web aprovechan la capacidad de Django para escalar de forma rápida y flexible.
  • Cargado al máximo de librerías propias. Django incluye docenas de extras que se pueden usar para manejar tareas comunes de desarrollo web. Este se encarga de la autenticación de usuarios, la administración de contenido, los mapas del sitio, las fuentes RSS y muchas más tareas, desde el primer momento.
  • Increíblemente versátil. Empresas, organizaciones y gobiernos han utilizado Django para construir todo tipo de cosas, desde sistemas de gestión de contenido hasta redes sociales y plataformas informáticas científicas.

¿Quién utiliza Django?

Actualmente hay varios sitios webs que utilizan Django como Disqus, Instagram, Mozilla, Pinterest y National Geographic.

¿Por dónde empiezo?

Actualmente he creado una ruta que puedes encontrar más abajo 👇. Esta se irá mejorando continuamente para aumentar nuestro conocimiento sobre este Framework, así que si no quieres perderte nada te recomiendo que me sigas en Twitter donde te avisaré cada vez que suba nuevo material sobre Python 🐍 y Django.

En la mayoría de artículos he creado proyectos de ejemplo en GitHub para que puedas descargarlos como información extra y realizar tus propias pruebas y modificaciones.

Antes de empezar se recomienda un conocimiento general sobre Python. Si aún no conoces este lenguaje, hay muchos libros en internet y también puedes mirar aquí 👀 donde aprenderás a iniciarte en este fantástico lenguaje.

Sin más preámbulos, te dejo con la ruta de aprendizaje con la que aprenderás lo más básico de este framework y con la que iremos profundizando conforme vayamos avanzando.

Cómo hacer un blog con Django desde 0

La mejor forma de aprender es ir practicando mientras lo mezclas con teoría. La idea de esta lista de tutoriales es que aprendamos en detalle como hacer una aplicación web con Django desde 0. Mostraremos todos los componentes básicos para entender su funcionamiento y veremos muchas de sus características y componentes. Una vez hecha esta serie, podrás realizar tu propio software.

Es una serie que servirá introducción para todo aquel que sea principiante en este Framework.

La primera sección será la instalación, en este tutorial instalaremos Python, Pip y Django y prepararemos nuestro entorno de trabajo.

Crear un blog con Django. Parte 1: Instalación

En el segundo tutorial ya es hora de empezar a escribir código, crearemos los modelos que usaremos en el proyecto y veremos como se simplifica la creación de la base de datos y nuestras tablas.

Crear un blog con Django. Parte 2: Modelos (Models)

Una de las cosas más interesantes de Django es que tiene una interfaz de administración. Esta lee los metadatos de los modelos creados en el proyecto y nos proporciona una interfaz rápida para la administración del contenido de nuestro sitio. Eso quiere decir que podremos añadir, actualizar, borrar y listar la información guardada en nuestra bbdd. En este tutorial aprenderemos como customizarlo.

Crear un blog con Django. Parte 3: Panel de administración

Para esta cuarta parte del tutorial nos vamos a encargar del diseño, integraremos la librería bootstrap para facilitar este proceso. También aprenderemos a trabajar con el sistema de plantillas de Django.

Crear un blog con Django. Parte 4: Diseño

En esta parte nos encargaremos del login y del registro de usuarios. Django nos provee de un sistema de autenticación y autorización que controla la seguridad del proyecto y es bastante sencillo y customizable.

Crear un blog con Django. Parte 5: Login

Es hora de unir todas nuestras partes con las vistas. Estas se encargan de tomar una solicitud web y que esta nos devuelva una respuesta. También aprenderemos a utilizar los formularios de Django y veremos como nos facilitan la vida. Para finalizar, vamos a probar que todo funciona correctamente y ya tendremos la página web lista.

Crear un blog con Django. Parte 6: Vistas (Views)

Para finalizar aprenderemos a utilizar los tests unitarios en nuestro proyecto, esto hará que podramos verificar que nuestros cambios no rompen otras partes de nuestro proyecto y nos ahorrará cientos de dolores de cabeza.

Como hacer más robustas nuestras apps con UnitTest en Django

Como extra, he añadido un nuevo tutorial a esta serie en que dejaremos de usar sqlite y aprenderemos cómo conectar una base de datos PostgreSQL con Django.

Vale, esto está bien, pero ¿Quieres profundizar? Pues tenemos más información sobre temas más concretos.

Modelos (models)

Con Django podemos customizarlos y nos ofrece varias opciones, si queremos hacerlo de una manera poco invasiva podemos utilizar los proxy models. Es un tipo de herencia del modelo principal sin tener que generar una nueva tabla. Se utiliza para generar nuevas funcionalidades a uno ya existente, como por ejemplo modificar el orden al realizar una query, unir datos, etc, sin modificar el esquema de la tabla de datos de la que extendemos.

Cómo utilizar el proxy model de Django

Puede que como a mí, alguna vez os haya pasado que cuando habéis usado un ORM, habréis echado de menos la posibilidad de generar nuevas funcionalidades adaptadas a un modelo en concreto. Tengo buenas noticias, Django soluciona esto dando la posibilidad de customizar el manager del modelo, así como insertar distintos managers que se adapten a tus necesidades.

Cómo customizar el manager de un modelo con Django

¿Quieres automatizar el proceso de la generación de una url válida para un sitio web, bien, Django nos provee el tipo de dato slug y la función slugify con la que podremos convertir cualquier texto en un texto válido para usar como url. En este tutorial os explicaré como realizar este proceso.

Como crear urls amigables con slug en Django

Panel de administración

El campo textarea se os queda corto a la hora de redactar un post ¿Verdad? Bueno pues esto tiene solución con la librería CKEditor. Esta librería nos permitirá generar textos enriquecidos. ¿Además quieres poder insertar código en tu post? No hay problema, aprenderemos a instalarlo junto con prims.js para darle estilo a nuestro código :)

Editor de posts con CKEditor y prims.js en Django

Vistas (views)

Si quieres aprender a paginar el contenido de tu web este es tu tutorial, aprenderéis lo sencillo que es con Django.

Paginación en Django con ListView

Autenticación

La autenticación por defecto en Django es por username pero con tantos en registros en varias webs ¿Quién se acuerda del que puso en un sitio u en otro? En este tutorial solucionaremos eso modificando la autenticación para hacerla vía email.

Login con email en Django

Docker x Django

¿Quieres aprender a correr tus proyectos en Django con Docker? Con el siguiente artículo aprenderás cómo hacerlo.

Cómo correr un proyecto de Django con Docker

Crea una API con Django REST Framework

Django REST Framework es un kit de herramientas muy potente y fácil de usar que nos ayudará en la creación de una API de forma sencilla y rápida gracias a la cantidad de utilidades que ofrece.

Con esta serie veremos como usando Django REST Framework se facilita mucho el trabajo.

Como inicio, empezaremos viendo como configurar el proyecto, además explicaremos como usarlo en Docker.

Cómo crear una API completa con Django Rest Framework

En esta segunda parte aprenderemos como hacer el registro de un usuario y a realizar la autenticación a nuestra API mediante un token.

Registro y autenticación con Django Rest Framework

Para la tercera parte nos enfocaremos en todos los procesos que realiza un CRUD.

Creación, lectura, actualización y borrado con Django Rest Framework

En la cuarta parte nos enfocaremos en la realización de búsquedas.

Realizar búsquedas con Django Rest Framework

Para finalizar, veremos que herramientas nos ofrece Django Rest Framework a la hora de realizar tests unitarios y aprenderemos como implementarlos en nuestro proyecto.

Unittest con Django Rest Framework

Si quieres llevar tu API al siguiente nivel es hora de implementar la autenticación con JWT. Para ello echa un vistazo al siguiente tutorial en el que verás lo fácil que es.

Login con JWT en Django REST Framework

Deploy de tu aplicación

Después de todo lo visto, ya sabes un montón de Django y has desarrollado tu propia app, todo funciona perfectamente en local así que ahora toca subirlo a un entorno de producción ¿No?

Para ello lo primero que debemos hacer es desplegar nuestro proyecto en un servidor para que todo el mundo pueda acceder a él. En el siguiente tutorial te explico como hacer el deploy en un vps con Ubuntu.

Deploy de un proyecto hecho en Django en un VPS con Ubuntu 20.04, Nginx, Gunicorn y PostgreSQL

También tienes la opción de hacerlo con Apache con el siguiente tutorial.

Deploy de proyecto Django en un vps con Ubuntu y Apache

¿No sabes como apuntar un dominio a tu servidor y añadir los certificados SSL para que tu web sea segura? Sin problema, aquí te explico como hacerlo paso a paso como configurarlo.

Configurar dominio y certificados gratuitos a un proyecto en Django

Ya tienes todo configurado y cada vez que realizas un cambio tienes que entrar en tu máquina, hacer pull, migraciones e instalar nuevas librerías, ah, y no te olvides de resetear apache para que los cambios se visualicen en tu web. Todo esto nos lo podemos ahorrar automatizando el deploy con Django y GitHub 💪.

Automatizar deploy de proyecto Django con GitHub

Espero que estos artículos os ayuden y si tenéis dudas, sugerencias, alguna pregunta o queréis que escriba algún tutorial sobre algo en concreto en Django, podéis escribirme a mí email que estaré encantado de ayudaros 😉, también podéis seguirme en Twitter donde os informaré de todas las novedades en cosasdedevs.com 🚀.

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para recopilar y analizar datos sobre la interacción de los usuarios con cosasdedevs.com. Ver política de cookies.