El titulo “Curso Avanzado de Django” esta muy bien puesto, esta es una estructura de folders bastante completa y profesional
Bienvenida
Todo lo que aprenderás sobre Django
Cimientos
Arquitectura de una aplicación
The Twelve-Factor App
Codebase: Settings modular
Codebase: Dependencias y archivos de docker
Codebase: Docker
Setups alternativos
Modelos
Herencia de modelos
Proxy models
App de usuarios
Organizando modelos en un paquete de Django
Creando el modelo de perfil de usuario
Solución del reto: arreglando la migración de users a user
Aplicación y modelo de círculos
Migraciones y admin de círculos
Introducción a Django REST Framework
Aprende cómo construir tu propio API con Django Rest Framework
Vistas, URLs y Parsers de DRF
Serializers
Buenas prácticas para el diseño de un API REST
Request, response, renderers y parsers
Real DRF
Autenticación y tipos de autenticación
APIView
Creando el token de autorización
User sign up
Limitar login a usuarios con cuenta verificada
Configurar envío de email
Instalar PyJWT y generar tokens
Verificar cuenta usando JWT
Actualizar modelo de circle (membership)
Crear CircleViewSet
Añadiendo autorización y paginación
Creación de circulos
Update de círculo, custom permissions y DRF Mixins
Migración de vistas de usuarios a ViewSets
Detalle de usuario
Update profile data
List members - Recursos anidado
Retrieve destroy member
Modelo de invitaciones y manager
Obtener invitaciones de un miembro
Unirse a grupo
Filtrado
App de rides y modelos
Implementar la publicación de un ride
Validación de campos de un serializer
Listado de rides
Editar un ride
Unirse a viaje
Terminar viaje
Calificar viaje
Tareas asíncronas
¿Qué es Celery?
Creando tarea asíncrona
Creando tarea periódica
Testing
Python unittest y Django TestCase
DRF APITestCase
Django Admin
Admin actions: Modificar datos de un query
Admin actions: Regresando una respuesta HTTP
Deployment
Instalación de la aplicación
Configuración del dominio en Mailgun y del Bucket en Amazon S3
Configuración final de Docker Container usando Supervisor
Tutorial de despliegue de la aplicación
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
Paga en 4 cuotas sin intereses
Termina en:
Aportes 30
Preguntas 14
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.