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

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Última oportunidad para asegurar tu aprendizaje por 1 año a precio especial

Antes: $249

Currency
$189/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

0D
0H
7M
54S

Codebase: Dependencias y archivos de docker

5/62
Recursos

Aportes 30

Preguntas 14

Ordenar por:

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

o inicia sesión.

El titulo “Curso Avanzado de Django” esta muy bien puesto, esta es una estructura de folders bastante completa y profesional

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

Se ve fuerte.

Una muy buena explicación del clásico django-cookiecutter 😃

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

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…etc)

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 😃

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

deberian hacer una version actualizada de este curso

Para todos los que no les sirve, testeado Diciembre 2022:

# Base
pytz
python-slugify
Pillow
psycopg2 --no-binary psycopg2
typed-ast

# Django
django

# Environment
django-environ

# Django REST Framework
djangorestframework
django-filter

# PyJWT
PyJWT

# Passwords security
argon2-cffi

# Static files
whitenoise

# Celery
tornado
redis
django-redis
celery
flower

Quitarle la versión a todas las dependencias funciono tanto para base como para local y production.

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

me ha costado un poco pero a dia de hoy 18 de Marzo de 2023 he logrado correr todos los servicios

base.txt
# Base
pytz==2018.7
python-slugify==1.2.6
Pillow==6.2.0
# psycopg2==2.7.4 --no-binary psycopg2
psycopg2-binary
# Django
django>=2.0.10

# Environment
django-environ==0.4.5

# Django REST Framework
djangorestframework==3.11.2
django-filter==21.1

# JWT
pyjwt==2.3.0

# Passwords security
argon2-cffi==21.3.0

# Static files
whitenoise==5.3.0

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

local.txt
-r ./base.txt

# Debugging
ipdb==0.13.9

# Tools
django-extensions==3.1.5

# Testing
mypy==0.950
pytest==7.0.1
pytest-sugar==0.9.4
pytest-django==4.5.2
factory-boy==3.2.1

# Code quality
flake8==4.0.1


production.txt
# PRECAUTION: avoid production dependencies that aren't in development

-r ./base.txt

gunicorn

# Static files
django-storages[boto3]

# Email
django-anymail[mailgun]

Espero les ayude

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

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/

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 “cride”, 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’t load ‘Argon2PasswordHasher’ 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