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

Codebase: Dependencias y archivos de docker

5/62
Recursos

Aportes 27

Preguntas 14

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

El titulo 鈥淐urso Avanzado de Django鈥 esta muy bien puesto, esta es una estructura de folders bastante completa y profesional

Se ve fuerte.

A parte de Redis y deTtornado se deben actualizar las librer铆as de Django y de Pillow, por bugs de seguridad

Pillow == 5.3.0
by
pillow>=6.2.2

and
django==2.0.9
by
django>=2.2.10

Una muy buena explicaci贸n del cl谩sico django-cookiecutter 馃槂

No me quedo claro una cosa, todos estos archivos base que nos ha dado el, son archivos digamos autogenerados por un cli (asi como cuando tu creas un proyecto nuevo en vue) o son digamos creados a mano por el?, en el caso de la segunda opcion: podrias dar un poco mas de contexto o informacion sobre porque utilizar estos archivos(en concreto, separar en archivos el requirements鈥tc)

A la fecha, el requirements/base.txt que me funciona es el siguiente

# Base
pytz==2018.7
python-slugify==1.2.6
Pillow==6.2.0
psycopg2==2.7.4 --no-binary psycopg2

# Django
django==2.2.17

# Environment
django-environ==0.4.5

# Django REST Framework
djangorestframework==3.9.1
django-filter==2.4.0

# JWT
pyjwt==1.7.1

# Passwords security
argon2-cffi==18.3.0

# Static files
whitenoise==4.1.2

# Celery
tornado==5.1.1
redis==3.2.0
django-redis==4.10.0
celery==4.2.1
flower==0.9.2

Hago docker-compose ps y me sale eso:

Deber铆an estar los 3 contenedores de celery estar funcionando peor por alguna raz贸n dice Exit 1

Viendo los logs todos me dan este error. 驴Por qu茅 podr铆a ser?

me siento como si me fueran tirado a la fosa de las marianas

Para los que esten viendo el curso en estos momentos (Diciembre 2021), me cost贸 configurar el build del docker con las versiones del Codebase.
Mis configuraci贸ns fueron diferentes as铆:

En el Dockerfile local

FROM python:3.8.5-alpine    		# No experimente con python3.9 o superior

En el requirements/base.txt

# Base
pytz==2018.7
python-slugify==1.2.6
Pillow==5.3.0
psycopg2==2.8.4 --no-binary psycopg2    ## Cambie la version de psycopg2
typed-ast==1.4.1       ## A帽ad铆 typed-ast ya que es requerido por psycopg2

# Django
django==2.0.10

# Environment
django-environ==0.4.5

# Passwords security
argon2-cffi==18.3.0

# Static files
whitenoise==4.1.2

# Celery
redis>=2.10.6, < 3
django-redis==4.10.0
celery==4.2.1
flower==0.9.2

Espero les sirva 馃槂

Por si poseen problemas al levantar los contenedores, un gran recurso que me sirvi贸 para mirar donde estaba el problema fue docker logs <nombre del contenedor>

Sin embargo ac谩 dejo el requirements que me hizo levantar de manera adecuada los contenedores:

# Base
pytz==2018.7
python-slugify==1.2.6
Pillow==5.3.0
psycopg2==2.7.4 --no-binary psycopg2

# Django
django==2.0.9

# Environment
django-environ==0.4.5

# Passwords security
argon2-cffi==18.3.0

# Static files
whitenoise==4.1.2

# Celery
redis==3.2.0
django-redis==4.10.0
celery==4.2.1
flower==0.9.2
tornado>=4.2.0,<6.0.0

2ride_flower_1 /entrypoint /start-flower Exit 1
2ride_celerybeat_1 /entrypoint /start-celerybeat Exit 1
2ride_celeryworker_1 /entrypoint /start-celeryw 鈥 Exit 1

Obtuve estos tres c贸digos de error

Para gestionar sus dependencias les recomiendo usar poetry.
https://poetry.eustace.io/

Los que hicieron el Curso de Docker, probablemente no saben lo que significan los s铆mbolos <<, & y * en el archivo YAML, aqu铆 lo explican genial, StackOverflow Link

Una pregunta, cuando yo vaya iniciar un proyecto desde cerro como le haria para estos archivos 驴? los tomo de algun lado, o como se hace 驴?

El curso est谩 muy bueno. Hay que repasarlo unas dos o tres veces e ir practicando. La cantidad de informaci贸n en cada clase es bastante.

Instale bajo linux centos, me fue excelente tuve problemas para instalar docker en linux pero se soluciono incluyendo timeout=120

todo perfecto

Una consulta todas estas carpetas, de config, compose, etc; las tenemos que crear desde cero o ya viene configurados. Y si hay que crearlas desde cero, depende de cada proyecto que vayamos a realizar??

si quiero iniciar un proyecto como el que veremos aqu铆 pero con ese mismos entorno y herramientas que usamos en este curso, como hago uso este c贸digo y ajusto a mi gusto o recomiendan armar mi stack desde cero?

donde descargo el codigo de cride?

Folders del proyecto

Creo que este curso va a subir mucho mi nivel de python backend developer

ufff el avanzado le quedar perfecto. 馃樀

muy interesante, pero todos los folders est谩n preparados para el proyecto 鈥渃ride鈥, si ya tengo mi proyecto pero quiero acomodarlos a esta estructura, bastar谩 con copiar los folders?..

Folders del proyecto

Folders del proyecto

Consulta, porque en el Docker file cuando est谩 copiando el entripoint lo hace desde la carpeta de producci贸n?
Entiendo que ese entrypoint tiene el bash para generar la conexi贸n de la db. Pero no deber铆a tener un entrypoint para local que sea diferente a producci贸n?

al crear el super usuario tengo este problema
Couldn鈥檛 load 鈥楢rgon2PasswordHasher鈥 algorithm library: No module named 'argon2._ffi鈥
estoy trabjando con django 3.9 ya probe:
docker-compose -f local.yml run --rm django python -m pip install argon2-cffi
o
docker-compose -f local.yml run --rm django python3 -m pip install -U cffi pip setuptools
pero nada