Bienvenida

1

Todo lo que aprenderás sobre Django

Cimientos

2

Arquitectura de una aplicación

3

The Twelve-Factor App

4

Codebase: Settings modular

5

Codebase: Dependencias y archivos de docker

6

Codebase: Docker

7

Setups alternativos

Modelos

8

Herencia de modelos

9

Proxy models

10

App de usuarios

11

Organizando modelos en un paquete de Django

12

Creando el modelo de perfil de usuario

13

Solución del reto: arreglando la migración de users a user

14

Aplicación y modelo de círculos

15

Migraciones y admin de círculos

Introducción a Django REST Framework

16

Aprende cómo construir tu propio API con Django Rest Framework

17

Vistas, URLs y Parsers de DRF

18

Serializers

19

Buenas prácticas para el diseño de un API REST

20

Request, response, renderers y parsers

Real DRF

21

Autenticación y tipos de autenticación

22

APIView

23

Creando el token de autorización

24

User sign up

25

Limitar login a usuarios con cuenta verificada

26

Configurar envío de email

27

Instalar PyJWT y generar tokens

28

Verificar cuenta usando JWT

29

Actualizar modelo de circle (membership)

30

Crear CircleViewSet

31

Añadiendo autorización y paginación

32

Creación de circulos

33

Update de círculo, custom permissions y DRF Mixins

34

Migración de vistas de usuarios a ViewSets

35

Detalle de usuario

36

Update profile data

37

List members - Recursos anidado

38

Retrieve destroy member

39

Modelo de invitaciones y manager

40

Obtener invitaciones de un miembro

41

Unirse a grupo

42

Filtrado

43

App de rides y modelos

44

Implementar la publicación de un ride

45

Validación de campos de un serializer

46

Listado de rides

47

Editar un ride

48

Unirse a viaje

49

Terminar viaje

50

Calificar viaje

Tareas asíncronas

51

¿Qué es Celery?

52

Creando tarea asíncrona

53

Creando tarea periódica

Testing

54

Python unittest y Django TestCase

55

DRF APITestCase

Django Admin

56

Admin actions: Modificar datos de un query

57

Admin actions: Regresando una respuesta HTTP

Deployment

58

Instalación de la aplicación

59

Configuración del dominio en Mailgun y del Bucket en Amazon S3

60

Configuración final de Docker Container usando Supervisor

61

Tutorial de despliegue de la aplicación

62

Futuros pasos y cierre del curso

Arquitectura de una aplicación

2/62
Recursos

El objetivo de este curso es convertirte en un Backend profesional que usa Django como su herramienta profesional.

El Backend consiste en:

  • Servidor
  • Aplicación
  • Base de Datos

Un Backend developer es un diseñador, su trabajo consiste un 90% en leer, diseñar, analizar y planear. Un 10% en programar. Nuestro trabajo más importante es el diseño del sistema y las decisiones tomadas son más costosas y más difíciles de cambiar.

Web Services es la manera en que se implementan las arquitecturas orientadas a servicios, se crean bloques que son accesibles a través de la web, son independientes del lenguaje de programación.

  • SOAP: Tiene su propio estándar, conocido por utilizar XML.
  • REST: Representational State Transfer, el objetivo es que nuestras operaciones sean Stateless. REST depende mucho más del protocolo HTTP.
  • GraphQL: Es el más moderno, desarrollado por Facebook. Funciona más como un Query Language para las API, un lenguaje de consultas.

Aportes 30

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

SOA (Service Oriented Architecture):

Es auto-contenida (self-contained)
Es una caja negra para sus consumidores
Representa una actividad de negocio con un fin muy especifico

Web Services:

Me tomé un tiempo para leer sobre las arquitecturas mencionadas en este vídeo, aunque me enfoque en SOAP y en RESTful HTTP, ambos enfocados en proveer servicios web pero de formas distintas.

Cuando nombró el Developer Roadmap me dije: “este tipo sabe” xD. Excelente recurso para saber que aprender y entender la idea general de lo que debe ser un Frontend y un Backend.

Esto vale oro.

para usar grahpQL tambien recomiendo esta app https://github.com/jjorgewill/graphene-django-extras super buena, integra los serializar de restframework y se obtiene un buen rendimiento

uhh, no van a tocar graphQL, pero bueno puedo recomendar django_graphene

Backend

Consiste en todo lo que no ve el usuario, consiste en Servidor, Aplicación, Bases de Datos y Django, le trabajo de un Backend es un diseñador de soluciones y sistemas. Las decisiones que uno toma como backend Developer son mas importantes y pueden llegar a ser mucho mas costosas ya que se encarga de diseñar el funcionamiento de la app y por lo tanto su rendimiento

Arquitectura

Software Architecture is about making fundamental structural choices which are costly to change once implemented

La Arquitectura de Software trata de hacer elecciones fundamentales en la estructura que serán muy difíciles de cambiar una vez implementadas

Hay distintos tipos de Arquitectura:

  • Monolítica: Todo esta manejado por el mismo servidor (Frontend, Backend, Databases…) y todo esta muy acoplado, un componente afecta a todos
  • Distribuida: Los componentes pueden estar desacoplados, pueden estar en distintos servidores y pueden consumirse a través de la red
  • Híbrida: Habla de como el sitio esta siendo mostrado. Por ejemplo la primera vez el Frontend se renderiza desde el Backend, pero el Frontend funciona como una aplicación independiente que usa un API
  • Orientada a Servicios (SOA [Service Oriented Architecture]): Es auto-contenida (no dependen de otras), es una caja negra para sus consumidores(No interesa como funciona por detrás) y presenta una actividad de negocio con un fin específico
    • Web Services: la manera en que se implementan las arquitecturas basadas en servicios, se crean los bloques que son accesibles desde la web y independientes del lenguaje de programación y las implementaciones de estos suelen seguir estandares muy populares

      • SOAP: Usa XML y tiene un protocolo de mensajería muy claro, aunque ya no se usa mucho

      Web Tools APIs | USPS

      • RESTful HTTP: Se centra en el protocolo HTTP y todas sus operaciones sean State-less, es decir, no dependan de ningún estado o operación anterior o próxima, actualmente es el mas usado

      Graph API - Documentation - Facebook for Developers

      • GraphQL: Es el mas moderno, desarrollado por Facebook y actua como un Query Lenguage y su Response es un JSON

      GitHub GraphQL API

Como dijo, a leer

Arquitectura de una aplicación:

Se trata de tomar decisiones acerca de cómo se implementa nuestra aplicación.

Consistencia del Backend:
"Un dev backend debe diseñar un sistema"
Se compone de:

  • Servidor, Aplicación, Base de Datos

Muy buena info con respecto a la ruta de un backend

Cimientos

Arquitectura de una aplicación

Un backend developer es un diseñador, las decisiones son costosas y dificiles de cambiar

Arquitectura: Tomar decisiones sobre la estructura fundamental que van a implicar costos y van a ser dificiles de cambiar una vez implementadas.

La arquitectura orientada en servicios consiste en crear una API que se comunica entre el backend y el front-end
Para el consumidor lo que pasa en la aplicación es una caja negra. Estas son autocontenidas.

Rest: Depende del protocolo http usando status code.

Estoy trabajando en Backend con Django y literalmente mi vida es leer, documentacion en Ingles

He trabajado mas con GraphQL, y es buenisimo para desarrollar API’s pensadas para ser consumidas con apps moviles.

Para Django se usa Graphene.

¿Micro servicios en que categoría está?

Excelente

Excelente info!

Hace tiempo estaba esperando un curso avanzado de Django comi este.

Yo tengo windows y he podido trabajar muy bien con el subsystem linux ubuntu de win10. lo único que no tengo con linux es Docker, pero éste me funciona muy bien con PowerShell de windows. así que ha desarrollar.

hola cuando en otro proyecto quiero realizar la instalación con docker de las dependencias me sale este error con Celery:

v20web-centro_celerybeat_1 exited with code 1
v20web-centro_celeryworker_1 exited with code 1

Excelente

Buenas compañeros y profe Pablo, tengo una pregunta.
Estoy implementando mi aplicación como SaaS utilizando el esquema Multi Tenancy e integré la app django-tenant-schemas y funciona a la perfección en mi computador local.
Alguien a desplegado a producción algo similar?
He leído casi toda la documentación de Heroku, actualizado mi plan de Heroku-Postgres sin resultados favorables.
Conocen otra IaaS para desplegar mi aplicación multi tenant?
Gracias compañeros.

Es normal sentir nervios antes de empezar un curso jajaja

Sería bueno contar con un curso similar a este pero con graphQL ¿Alguien más de acuerdo? 😃

es totalmente obligatorio el uso de docker en este curso? Lo pregunto ya que mi pc es de 2gb de ram y un sistema de 32 bit

Super importante entender que planear y decidir es lo difícil, programar es un poco más sencillo.

Que @#$%#%##%* que no expliquen todo, si es por leer la documentación para que pago la suscripción? para soportar que la app deje de funcionar cada 10min? soy el único que piensa así?

Hola buenas noches!
Quién con conocimientos en sistemas de inventario, para culminar el modulo de ventas de un sistema, sus reportes, envíos de email , obtener el inventario actual por cada ventas registrada, y llevarlo a desarrollo en un dominio propio de la empresa!
Para comenzar a trabajar lo restante del sistema y opción a futuras cooperaciones en otros sistemas por fa!! Es mi primer sistema de django, hice el curso anterior de django y no logró hacer lo nombrado y el curso django avanzado me da un error al construir las imágenes y no he podido resolver! Entonces quisiera culminar el sistema y la persona o persona de preferencia con conocimiento en inventarios por fa!

Banckend es una parte del desarrollo de software web que se encarga de toda la lógica para que la pagina funciones, por decirlo en otras palabras es el detrás de cámaras.
Por ejemplo la comunicación con el servidor, o la interacción con la base de datos

Como backend developer el trabajo más importante es el diseño de la solución o sistema.