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: Docker

6/62
Recursos

Aportes 85

Preguntas 25

Ordenar por:

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

Para los que tengan problemas con celery, tornado, redis, cosas como 鈥樏塻te m贸dulo no se encuentra en tornado鈥, etc, etc.

Dejen las dependencias de Celery de la siguiente forma

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

Tendr谩n que ejecutar otra vez 鈥渄ocker-compose build鈥

Para poder correr el proyecto y crear un superuser en django tuve que, ademas de actualizar #Celery como menciona @emmanuelO , actulizar la vesion de 鈥渁rgon2-cffi鈥 en base.txt de requirements:

# Passwords security
argon2-cffi==20.1.0

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


Espero les sirva, Saludos!

<h1>Dependencias actualizadas a Septiembre del 2020</h1>

Actualice las dependencias a los 煤ltimos release, al correr el stack todo funcion贸. Si hay algo incompatible o diferente tratar茅 de solucionarlo y compartir en la siguientes clases.

requirements/base.txt

# Base
pytz==2020.1
python-slugify==4.0.1
Pillow==7.2.0
psycopg2==2.8.5 --no-binary psycopg2

# Django
Django==3.1.1

# Environment
django-environ==0.4.5

# Django REST Framework
djangorestframework==3.11.1
django-filter==2.3.0

#聽JWT
pyjwt==1.7.1

# Passwords security
argon2-cffi==20.1.0

# Static files
whitenoise==5.2.0

# Celery
tornado>=6.0.4
redis>=3.5.3
django-redis==4.12.1
celery==4.4.7
flower==0.9.2

requirements/local.txt

-r ./base.txt

# Debugging
ipdb==0.13.3

# Tools
django-extensions==3.0.8

# Testing
mypy==0.782
pytest==6.0.1
pytest-sugar==0.9.4
pytest-django==3.9.0
factory-boy==3.0.1

# Code quality
flake8==3.8.3

requirements/production.txt

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

-r ./base.txt

gunicorn==20.0.4

# Static files
django-storages[boto3]==1.10

# Email
django-anymail[mailgun]==7.2.1

Reemplazar la versi贸n de python en dockerfile de local y prod
FROM python:3.6-alpine
por
FROM python:3.8-alpine

Para los que tengan problema al momento de ejecutar el Celery
modifica el archivo base.txt la parte de Celery de la siguiente manera:

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

Luego de esta modificaci贸n ejecutar:

  1. export COMPOSE_FILE=local.yml
  2. docker-compose up --build

Despu茅s de semanas de estar atorado aqu铆 tengo la soluci贸n definitiva para que corra el script 馃槂
Todo gracias a mi amigo Jorge A. P茅rez G.

Nota: Esto funciona el d铆a 13 de noviembre del 2020:

  1. Soluci贸n:

    • Una vez que hayas hecho fork al repositorio y luego lo hayas clonado a una carpeta en tu computadora con:
    git clone [email protected].com:tuPerfilDeGitHub/cride-platzi.git 
    
    • F铆jate en que no hayas hecho ning煤n cambio en los archivos, si lo hiciste tendr谩s varias opciones:

    Opci贸n propuesta 1: hacer un commit con :

    git commit -am "El mensaje de tu commit"
    

    Opci贸n propuesta 2: Borrar el repositorio y volver a clonarlo con el fin de que no tenga modificaciones.

    • Cambiate de rama a 6/Typo-models con:
    git checkout 6/Typo-models   
    
    • Abre la carpeta donde clonaste el repositorio, luego la carpeta cride-platzi, despu茅s la carpeta requirements en esta encontrar谩s un archivo llamado: *base.txt, abre el archivo con cualquier editor de c贸digo (visual studio code, atom, sublime text, etc.) y modifica los siguientes par谩metros (tornado no existe, deber谩s escribirlo de cero):
    # Passwords security
    argon2-cffi==20.1.0
    
    # Celery
    redis>=3.2.0
    django-redis==4.10.0
    celery==4.2.1
    tornado>=5.0.0,<6.0.0
    flower==0.9.2
    
    • Guarda el archivo y despu茅s corre lo mismo que el profesor en este video:
    docker-compose -f local.yml build       
    

    y luego:

    docker-compose -f local.yml up      
    

Y listo, todo deber铆a correr 馃槂

  • Si quieres ver las dem谩s ramas solo debes hacer:

    git branch -r   
    

(Para salir de la visualizaci贸n de las ramas solo oprime la tecla 鈥淨鈥)
Podr谩s notar que hay una rama por cada video del curso, a煤n no avanzo en este pero podr铆a asegurar que si algo falla m谩s adelante podr铆amos hacer lo mismo y cambiarnos a la rama correspondiente.

馃槂

me surgieron tantos problemas al querer levantar el entorno que me desmotivaron a continuar el curso.

He vuelto a ver este curso despu茅s de 5 meses y siguen existiendo problemas con los requirementes, 驴esto sucede en todos los desarrollos? definitivamente es un dolor de cabeza -.-

# Para construir las imagenes
$ docker-compose -f local.yml build

# Para correr el stack
$ docker-compose -f local.yml up

# Para ver el estado de los procesos de Docker
$ docker-compose -f local.yml ps 

# Para detener la ejecuci贸n
$ docker-compose -f local.yml down

Para no tener que colocar 鈥-f local.yml鈥 en cada comando, se puede crear una variable de entorno de esta forma:

$ export COMPOSE_FILE=local.yml

En Windows, para poner la variable de entorno COMPOSE_FILE, podemos crear un archivo en la ra铆z de nuestro proyecto (donde se encuentra local.yml) llamado .env y dentro declarar:

COMPOSE_FILE=local.yml

Hola, les comparto el siguiente script, espara facilitar la ejecuci贸n repetitiva de los comandos para leventar los servicios de este curso, espero que lo disfruten. Saludos.

https://gist.github.com/quattrococodrilo/b85da7d5715f1139af8fd7497c06accf

#!/bin/bash
# Author: Luis Fernando Cruz Carrillo
# Email: [email protected]
# This file must be in docker-compose's file directory, and need
# have execution allows. It work fine in linux systems, but if you
# taste it in emulated Ubuntu terminal in Windows, please share me
# your results. Enjoy!

options_start(){
    # Options menu

    echo -e "---------------------------"
    echo -e "--------QUICK START--------"
    echo -e "---------------------------"
    echo "Run a docker-compose file by the \"easy way\"."
    echo "Sintax: command [option] [suboption]"
    echo "Options -up / -down"
    echo "Suboptions:"
    echo -e "\t -rs Run service separately: first, you need run command with option -up in one terminal, and then run command with -up -rs options in another terminal."
    echo -e "\t -a Run in stand alone mode: first, it run the services in silence mode, and then run separately one of them, by example, django."
}

if [ ! $1 ]; then
    options_start
    exit 1
fi

prepare_environ () {
    # Set a docker-compose file as a COMPOSE_FILE variable.

    dir_files=($(ls *.yml))

    echo "Select compose file:"

    for (( df=0; df < ${#dir_files[@]}; df++ ))
    do
        echo "$((df + 1)). ${dir_files[$df]}"
    done

    read -p "Option [number]: " option

    option=$(( option - 1 ))

    path_to_file=$(pwd)

    composer_file=${dir_files[option]}

    export COMPOSE_FILE="$path_to_file/$composer_file"
}


rs_option () {
    # This function allows run a service in stand alone mode.

    docker-compose ps
    read -p "Enter service name: " name
    if [ $name ]; then
        read -p "Enter app name: " app
        if [ $app ]; then
            docker rm -f $name
            docker-compose run --rm --service-ports $app
        fi
    else
        options_start
        exit 1
    fi
}


add_exception_ignore () {
    # Add program name as exception in .dockerignore.

    program_name="executor.sh"

    if [ -f .dockerignore ]; then
        file=.dockerignore
        exist_exception=0
        while IFS= read line
        do
            if [ "$line" = "$program_name" ]; then
                exist_exception=1
            fi
        done <"$file"
    fi

    if [ $exist_exception -eq 0 ]; then
        echo "$program_name" >> $file
    fi
}


if [ $1 = "--help" ]; then
    options_start

elif [ $1 = "-up" ]; then
    add_exception_ignore
    prepare_environ

    if [ $2 = "-rs" ]; then
        rs_option
    elif [ $2 = "-a" ]; then
        docker-compose up -d
        rs_option
    else
        docker-compose up
    fi


elif [ $1 = "-down" ]; then
    if [ ! $COMPOSE_FILE ]; then
        prepare_environ
    fi
    docker-compose down
fi

No puedo ejecutar el archivo ya que me sale el siguiente error:

ImportError: cannot import name 鈥榩ython_2_unicode_compatible鈥

Alguno tiene el mismo problema?

docker es muy molesto, no he podido avanzar por andar solucionando error tras error 馃槩

Hola Cabres!, no se si les a pasado el siguiente error con Celery, intente las soluciones que estaban en el grupo, pero no me funco

celeryworker_1  |   File "/usr/local/lib/python3.6/site-packages/django_filters/__init__.py", line 4, in <module>
celeryworker_1  |     from .filterset import FilterSet
celeryworker_1  |   File "/usr/local/lib/python3.6/site-packages/django_filters/filterset.py", line 13, in <module>
celeryworker_1  |     from .conf import settings
celeryworker_1  |   File "/usr/local/lib/python3.6/site-packages/django_filters/conf.py", line 5, in <module>
celeryworker_1  |     from .utils import deprecate
celeryworker_1  |   File "/usr/local/lib/python3.6/site-packages/django_filters/utils.py", line 10, in <module>
celeryworker_1  |     from django.db.models.fields import FieldDoesNotExist
celeryworker_1  | ImportError: cannot import name 'FieldDoesNotExist'
cride-jp_celeryworker_1 exited with code 1

         Name                        Command               State     Ports  
----------------------------------------------------------------------------
cride-jp_celerybeat_1     /entrypoint /start-celerybeat    Exit 1           
cride-jp_celeryworker_1   /entrypoint /start-celeryw ...   Exit 1           
cride-jp_django_1         /entrypoint /start               Exit 1           
cride-jp_flower_1         /entrypoint /start-flower        Exit 1           
cride-jp_postgres_1       docker-entrypoint.sh postgres    Up       5432/tcp
cride-jp_redis_1          docker-entrypoint.sh redis ...   Up       6379/tcp

Para los que tengan problemas con la biblioteca de argon, modifiquen el que existe en requirements/base.txt y pongan esto
argon2-cffi==20.1.0.

Tambi茅n deber铆an cambiar las dependencias de celery, Celery quedar铆a as铆:
redis>=3.2.0
django-redis4.10.0
celery
4.2.1
tornado>=5.0.0,<6.0.0
flower==0.9.2

Con eso dej贸 de darme problemas

no puedo correr el proyecto, clone el repo de pablo, y este est谩 mas construido que el de la clase hasta tiene apps adcionales, cuando corro el comando para correr el proyecto, sale este error

File "/usr/local/lib/python3.6/site-packages/rest_framework/authtoken/models.py", line 6, in <module>
celeryworker_1  |     from django.utils.encoding import python_2_unicode_compatible
celeryworker_1  | ImportError: cannot import name 'python_2_unicode_compatible'

donde esta el codigo inicial para ir a la par con las clases?
que debo hacer para seguir la clase con normalidad?

Para los novatos como yo, Docker es como un dolor de cabeza, pero me parece que es fundamental aprender a utilizarlo. Animo Muchachos/.

Para aquellos que tuvieron errores con celery y flower a la hora de encender el contenedor de docker, hice estos cambios en el base de requirements:

# 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```

驴Tendr铆a algo de malo actualizar Django a una versi贸n mas reciente?

Comandos Docker $ docker container $ docker images $ docker volume $ docker network ls rm prune -a -q

Hola, estoy teniendo un problema al intentar crear un super usuario. Cuando levanto el docker temporal para lanzar el comando de createsuperuser
Este es mi comando:
sudo docker-compose -f local.yml run --rm django python manage.py createsuperuser

Esto es lo que me sale como error:
ModuleNotFoundError: No module named 'argon2._ffi'

ValueError: Couldn't load 'Argon2PasswordHasher' algorithm library: No module named 'argon2._ffi'

Que puede estar pasando?

Esto se muestra en mi consola luego de 鈥渄ocker-compose up鈥

cride-platzi-1-codebase_celerybeat_1 exited with code 1
cride-platzi-1-codebase_flower_1 exited with code 1
cride-platzi-1-codebase_celeryworker_1 exited with code 1

Escribo el codigo 鈥渄ocker-compose ps鈥 para verificar los procesos y esto se muestra en consola:

                 Name                               Command               State            Ports         
---------------------------------------------------------------------------------------------------------
cride-platzi-1-codebase_celerybeat_1     /entrypoint /start-celerybeat    Exit 1                         
cride-platzi-1-codebase_celeryworker_1   /entrypoint /start-celeryw ...   Exit 1                         
cride-platzi-1-codebase_django_1         /entrypoint /start               Up       0.0.0.0:8000->8000/tcp
cride-platzi-1-codebase_flower_1         /entrypoint /start-flower        Exit 1                         
cride-platzi-1-codebase_postgres_1       docker-entrypoint.sh postgres    Up       5432/tcp              
cride-platzi-1-codebase_redis_1          docker-entrypoint.sh redis ...   Up       6379/tcp  

Alguna idea de porque estos procesos est谩n detenidos?

17 de diciembre funcion贸 con:

Django

django>=2.0.10, < 3.1.0

Celery

redis>=3.2.0
django-redis>=4.10.0
celery>=4.2.1, <5.0.0
tornado>=5.0.0,<6.0.0
flower>=0.9.2

En mi caso Docker corre con la direccion de IP 192.168.99.100. Al acceder al localhost:8000 me rechazaba la conexion. Tuve que colocar la ip de Docker en los Allowed Host para poder acceder.

No he podido avanzar, me dice que no encuentra el manage.py (estoy en windows con Docker Toolbox)

Una vez clonado el proyecto, por si quieren ir al codebase con

git checkout origin/1/Codebase

es suficiente

Para los que estan teniendo problemas con los requirements al d铆a de hoy, lo que hice para que funcionara fue quitarle las versiones a todos los paquetes en base.txt; con eso me funcion贸.

Para usuarios de vscode: luego de solucionar las dependencias con problemas de versi贸n (bien explicado m谩s abajo por ej. por @Emmanuel0), a m铆 se me hizo muy 煤til instalar el plugin 鈥remote - containers鈥, de vscode, que me 鈥榙evuelve鈥 el linteo del c贸digo, autocompletar y sintaxis.

.devcontainer.json qued贸 as铆:

{
    "name": "django configuration",
    "dockerComposeFile": [
        "../local.yml"
    ],
    "service": "django",
    "forwardPorts": [8000],
    "workspaceFolder": "/app",
}

En container, s贸lo instal茅 los plugins (vscode) de 鈥楧jango鈥, 鈥楶ython鈥 y 鈥楶ylance鈥.

Hola. Por que no mejor dejar el archivo de docker compose con el nombre por defecto (docker-compose.yml), y asi evitar tener que exportar la variable de entorno y/o tener que usar -f local.yml?

Ejecutando desde GitBash en Windows, al querer crear un usuario, me sali贸 el error

_ Superuser creation skipped due to not running in a TTY. You can run manage.py createsuperuser in your project to create one manually._

Lo solucione agregando winpty al principio del comando

winpty docker-compose run --rm django python manage.py createsuperuser

SOLUCI脫N DE ERRORES DE INSTALACI脫N

Actualizado en 13 de enero de 2022. Con python 3.8.10 (viene por default en ubuntu).
En primer lugar en cride-platzi/compose/local/django/Dockerfile hacer:

FROM python:3.8.5-alpine

ENV PYTHONUNBUFFERED 1

Despues, pegar esto en cride-platzi/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

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

# JWT
pyjwt==1.7.1

# Passwords security
argon2-cffi==21.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
tornado==4.2

Usar,

docker-compose -f local.yml build

Cada vez que se actualicen valores del docker para instalar las actualizaciones.

Espero de coraz贸n que les sirva. A APRENDER!

para el moneto en elk que estoy, me funciono de la siguiente manera en base.txt:


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

no he confirmado si nbconvert es nesesario forzarlo todavia.

No puedo entrar al admin. Me aparece el siguiente error:

ProgrammingError at /admin/
relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

Alguine sabe como resolverlo?

Al correr

$ docker-compose ps

tengo como repsuesta

           Name                          Command               State            Ports
----------------------------------------------------------------------------------------------
cride-platzi_celerybeat_1     /entrypoint /start-celerybeat    Exit 1
cride-platzi_celeryworker_1   /entrypoint /start-celeryw ...   Exit 1
cride-platzi_django_1         /entrypoint /start               Up       0.0.0.0:8000->8000/tcp
cride-platzi_flower_1         /entrypoint /start-flower        Exit 1
cride-platzi_postgres_1       docker-entrypoint.sh postgres    Up       5432/tcp
cride-platzi_redis_1          docker-entrypoint.sh redis ...   Up       6379/tcp

Pero al intentar eliminar el servicio cride-platzi_django_1

$ docker-compose rm -f cride-platzi_django_1 

Recibo:

ERROR: No such service: cride-platzi_django_1

A alguien m谩s le ha pasado esto?

La 煤nica forma en la que logre borrarlo fue usando:

$ docker rm -f <CONTAINER_ID>

La verdad es que todo este proceso da muchos problemas en Windows, hice lo mismo en windows y en linux y me funciono a la primera en linux, solo hagan lo que roberto martin dice y listo

Cuando inicio sesi贸n tengo este error como lo puedo solucionar

En Windows, me surgi贸 este error:

python: can't open file '.\manage.py': [Errno 2] No such file or directory

al correr:

docker-compose -f .\local.yml run --rm django python .\manage.py createsuperuser

Despu茅s de horas intentando varias cosas sin tener 茅xito, lo que solucion贸 mi problema fue solo quitar el 鈥./鈥, quedando asi:

docker-compose -f .\local.yml run --rm django python manage.py createsuperuser

Y todo bel茅n mijo, ya pude crear el super usuario

buenas tardes, actualice las dependencias de celery a sus ultimas versiones:

<h1>Celery</h1>

tornado>=6.0.4
redis>=3.5.3
django-redis4.12.1
celery
4.4.7
flower==0.9.5
sigo sin poder levantar los servicios, alguna ayuda por favor !!!

Si al correr docker-compose -f local.yml up llegan a tener un error tipo:

ERROR: for flower  Cannot start service flower: driver failed programming external connectivity on endpoint

Solo intenten reiniciar Docker y listo.

Habilitar debugger

No logro levantar el celery y el flower no dejan de mandar errores
(Linux Mint)

Hola, no estoy pudiendo levantar el celerybeat_1

Despu茅s de hacer el up de la app, ejecuto el comando:

docker-compose -f local.yml ps

Y el 煤nico que no levanta es CeleryBeat.

 Name          Command               State            Ports
------------------------------------------------
cride-platzi_celerybeat_1     /entrypoint /start-celerybeat    Exit 1```

La applicaci贸n de django en localhost:8000/admin no se puede acceder tampoco, por lo que estoy trabado ac谩.
Ac谩 est谩 el log

Alguno sabe que puede ser?

Para finales de Septiembre es necesario hacer las actualizaciones a continuacion en:
requirements ->base.txt

# Passwords security
argon2-cffi==20.1.0

# Static files
whitenoise==4.1.2

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

**Otros Comandos Docker **

  • $ docker container

  • $ docker images

  • $ docker volume

  • $ docker network

  • ls. listar

  • rm remover

  • prune quitar los que no estamos usando

  • -a mostrar todos

  • -q solo los id

  • 鈥 help ayuda de los comandos

Comandos para correr el proyecto con Docker

1.- Generamos las im谩genes en docker

sudo docker-compose -f local.yml build

2.- Levantamos las im谩genes

sudo docker-compose -f local.yml up

3.- Visualizar las im谩genes que est谩n corriendo con docker

sudo docker-compose -f local.yml ps

pero puedes utilizar el siguiente comando para ver mas informaci贸n:

sudo docker ps -a

Es muy largo correo todos los comandos pero podemos hacer lo siguiente:

export COMPOSE_FILE=local.yml

Esto nos permitir谩 ejecutar estos comandos dentro de la sesi贸n de la terminal haciendo referencia al archivo local.yml

sudo docker_compose build
sudo docker_compose up
sudo docker_compose ps
sudo docker_compose down

Comandos de Administraci贸n con Docker

Para correr comandos de django puede usarse:

sudo docker-compose run --rm django COMMAND

馃槂

Al ejecutar los contenedores se me presentaron los siguientes errores:
Error 1:
AttributeError: module 鈥榯ornado web鈥 has no attribute 'asynchronous鈥
Se solucion贸 agregando
tornado==4.2

Error 2:
Redis transport requires redis-py versions 3.2.0 or later. You have 2.10.6

Se soluciona como indica el comentario con modificar en base.txt:
redis>=3.2.0, < 3.2.1

al final esta secci贸n en el archivo base.txt me qued贸 as铆:

Celery

redis>=3.2.0, < 3.2.1
django-redis4.10.0
celery
4.2.1
flower0.9.2
tornado
4.2

En log logs hay algunos mensajes que entiendo posiblemente mas adelante se tenga que ir afinando.

Hola gente, tengo un problema al ejecutar

docker-compose run --rm django python manage.py createsuperuser

Me sale el siguiente error:

django.db.utils.ProgrammingError: relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

Cuando hago el docker-compose up me salen estos errores con celery y flower

Incluso si entro a la terminal de alpine con el comando docker-compose exec dajngo sh y ejecuta al menos para ver la version (celery --version) sale ese chorro de errores, he consultado y nada

Uso docker con docker toolbox for windows

Crear imagenes docker

Correr el stack de docker

Pro Tip $ export COMPOSE_FILE=local.yml $ docker-compose build $ docker-compose up $ docker-compose ps $ docker-compose down

Comandos administrativos $ docker-compose run --rm django COMMAND ejemplo: $ docker-compose run --rm django python manage.py createsuperuser

Tengo estos errores al querer correr el comando de docker:
docker-compose -f local.yml up

Es el siguiente:
ERROR: for django Cannot create container for service django: b鈥橠rive has not been shared鈥
ERROR: Encountered errors while bringing up the project.

Ya coloque la variable en el archivo .env y de todos modos sigue persistiendo, alguien puede ayudarme??

hola recien estoy viendo docker y tengo una duda , cuando utilizas el comando docker-compose -f local.yml build 鈥 descarga los requirement.txt ?

recomendado el docker-compose que maneja pycharm unos cuantos clicks y todos nuestros servicios arriba

Si deseo colocar la fecha de nacimiento de un usuario cual ser铆a el metodo que debo de usar??

tengo un problema y es que al usar docker-compose up me sale este mensaje

ModuleNotFoundError: No module named 'cride'```

Buenas, estoy usando DockerToolbox en Windows y al usar el comando: docker-compose -f local.yml build, no hay problema, pero luego al usar:

docker-compose -f local.yml up, arroja entre otros errores: python: can鈥檛 open file 鈥manage.py鈥: [Errno 2] No such file or directory.

Se ruega ayuda, Gracias!!!

crear una variable de entrono para no tener que escribir local.yml primera linea de la imagen comandos 煤tiles desde la segunda linea

comandos para habilitar debugger

Habilitar debugger Django en Docker Container $ docker-compose up $ docker-compose ps $ docker rm -f <ID> $docker-compose run --rm --service_ports django

si no puedes levantar las im谩genes con el comando docker-compose -f local.yml up , quiz谩 es por que docker requiere que le des un disco disponible en cual trabajar(c:\ o d:\ o, etc) para agregar un disco disponible debes ir a settings de docker/shared Drives y marcar el disco en donde esta tu proyecto, esto te abrir谩 otra ventana donde debes colocar tu contrase帽a de inicio de sesi贸n de tu computadora, en el caso no tengas una contrase帽a debes crearte una para que funcione

Les recomiendo usar PyCharm tiene integraci贸n con Docker y con un solo bot贸n pueden poner a correr todos sus contenedores y ver sus logs y todo, tambi茅m pueden desde el mismo IDE ver las base de datos y gestionar git; Un IDE completo!

me esta gustando bastante este curso鈥

a ese est谩n yo le agregar铆a pgadmin 4 para revisar la base de datos

El export funciona solo dentro de la instancia de la consola o se agrega al zshcr?

Tengo errores despu茅s de ejecutar e UP de docker compose

como puedo solucionarlo, estoy corriendo en un mac?

celerybeat_1 | ImportError: cannot import name 鈥榩ython_2_unicode_compatible鈥

Hice todos los pasos como en los videos y al iniciar en localhost:8000/admin con mi superusuario, me sale esto.

Le doy para atras y ya entra al admin de django.

Por qu茅 da el error?

Hola, estoy teniendo problemas al realizar el docker-compose -f local.yml up. Obtengo los siguientes errores:
django_1 | python: can鈥檛 open file 鈥manage.py鈥: [Errno 2] No such file or directory
flower_1 | ModuleNotFoundError: No module named 'cride鈥
celerybeat_1 | ModuleNotFoundError: No module named 鈥榗ride鈥

Estoy utilizando Windows 10 Home y Docker Toolbox.

Gracias.

Si a alguien que esta en** windows** le sale un error al hacer docker-compose -f local.yml up, donde diga: 鈥unshared drives鈥 o algo asi(error muy comun), debe ir a settings en docker, ir a shared drives y marcar el disco local C para darle una unidad de trabajo a Docker(les pedira una cuenta), si al hacer check se quita, lo que deben hacer es lo siguiente(despues de varias horas de intentos me funciono):

1-Ir a settings/accounts, crear una cuenta y la cambian a administrador
2-Hacer ctrl+alt+supr, eligen la opcion cambiar de cuenta y se van a la cuenta que crearon
3-Lo que deben hacer es ir al home directory, ejemplo: C:\Usuarios\me, aca es donde te van a negar el acceso y tienes que habilitarlo, haces click en continuar
4-Una vez que ya tengas acceso al home con la nueva cuenta, haz otra vez ctrl+alt+supr y regresa a tu cuenta propia
5- Ahora ve a settings en docker, share drives y haz check en C, ingresa los datos de la cuenta que creaste y listo, problema resulto
6-Ahora si podras hacer docker-compose -f local.yml up sin error alguno
La solucion la encontre en este link:
https://www.mattwoodward.com/2019/05/09/docker-on-windows-10-sharing-a-drive-when-logging-in-with-a-microsoft-account/?unapproved=4947&moderation-hash=eea4ea5668585ef7a5ecae1c9275e640#comment-4947

Como configuro el container de postgres con postgis ?

Fedora 32 me estuvo dando muchos problemas pero al final mejor me cambie a Ubuntu y aunque tuve problemas con la version de django-rest-framework ya pude correr el proyecto.

Si tienes error En Windows al correr la solucion es loguearte en docker y asignar una carpeta en filesharing

@pablotrinidad todavia falta para el deploy pero se va a deployar con docker? vamos a tener varias instancias? por ej una para workers otra para django y otra para flower ?

Para hacerlo aun mas resumido, se puede crear un alias en el bash e incluir los comandos de up/dow/ps

alias dc="sudo docker-compose -f local.yml"

de manera que la proxima vez que quieras levantar la aplicacion solo escibiras

dc up

ERROR: for cride-platzi-1-codebase_celeryworker_1 Cannot create container for service celeryworker: status code not OK but 500: {鈥淢essage鈥:鈥淯nhandled exception: Filesharing has been cancelled鈥,鈥淪tackTrace鈥:" en Docker.ApiServices.Mounting.FileSharing.<DoShareAsync>d__6.MoveNext() en C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\Mounting\FileSharing.cs:l膫颅nea 0\r\n鈥 Fin del seguimiento de la pila de la ubicaci膫艂n anterior donde se produjo
la excepci膫艂n 鈥擻r\n en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Thr

Digno de que trucaso el tip de compose_file

He bajado el proyecto de github pero cuando trato de correr el docker-compose -f local.yml up me aparece el error de:

Waiting for PostgreSQL to become available鈥

y ningun otro servicio se levanta.

Alguien tiene la solucion que me pueda ayudar?

Les dejo un dato para el sgte error:

 docker-compose run --rm --service-ports django
ERROR: 
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

Soluci贸n

docker-compose -f local.yml run --rm --service-ports django
Starting cride-jp_postgres_1 ... done
PostgreSQL is available
Operations to perform:
  Apply all migrations: admin, auth, authtoken, circles, contenttypes, rides, sessions, users
Running migrations:
  No migrations to apply.
  Your models have changes that are not yet reflected in a migration, and so won't be applied.
  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
Watching for file changes with StatReloader

Para clonar el c贸digo en la branch Codebase

git clone --branch=1/Codebase https://github.com/pablotrinidad/cride-platzi.git
docker-compose run --rm django python manage.py createsuperuser

Este comando me genero problemas al usarlo , no me dejo crear el super admin

驴Todo mundo tiene ese problema con las imagenes de celery/flower?

           Name                          Command               State     Ports
--------------------------------------------------------------------------------
cride-platzi_celerybeat_1     /entrypoint /start-celerybeat    Exit 1
cride-platzi_celeryworker_1   /entrypoint /start-celeryw ...   Exit 1
cride-platzi_django_1         /entrypoint /start               Exit 1
cride-platzi_flower_1         /entrypoint /start-flower        Exit 1
cride-platzi_postgres_1       docker-entrypoint.sh postgres    Up       5432/tcp
cride-platzi_redis_1          docker-entrypoint.sh redis ...   Up       6379/tcp

Necesito ayuda, quiero hacer una migracion a un proyecto ya existente a esta estructura de carpetas, pero no encuentro en que lugar del dockerfille del entorno local, se copian los archivos desde el exterior hacia el contenedor, asi que cuando estoy corriendo el contenedor, corre todo bien, pero no tengo los archivos de mi app

tambien tuve que cambiar el m茅todo de Password Security 馃槮

# Passwords security
argon2-cffi==20.1.0```

En mi caso tuve que actualizar las parte de Celery incluyendo la versi贸n de flower para que levantara

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