Django, la guía que me ha ayudado a manejarlo eficazmente

Django, la guía que me ha ayudado a manejarlo eficazmente

En mi trabajo me toco manejar el backend con Django y se me hizo bastante duro el comprenderlo, además que no me gustaba mucho python debido a que por un mal espaciado produce errores, prefiero usar corchetes y punto y coma.

Pero el trabajo me solicitaba utilizarlo y así pude descubrir su potencial que habiendo manejado lenguajes backend como JS con NodeJS, PHP con Laravel y ahora Python con Django, mi orden de frameworks más recomendados y optimizados serián:

  • NodeJS
  • Django
  • Laravel

Algunos tips y funciones útiles que puedes o no utilizarlas van a ser listadas y el blog se ira actualizando mediante la profundización en el framework siga avanzando.

Lanzar Errores Propios en formato JSON

# Importar la librería
from rest_framework.exceptions import APIException
# Utilizar la librería
raise APIException("el mensaje a ser retornado")

Manejo de Migraciones

Cuando se necesite resetear las migraciones debido a algún conflicto que tengamos o porque no se aplican los cambios hechos, debemos tomar en cuenta dos casos:

Si podemos borrar toda la BDD

Lo primero que debemos hacer es borrar todos los archivos en la carpeta migraciones excepto el archivo init.py .

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete

Luego de eso podemos crear de nuevo las migraciones con el comando:

python manage.py makemigrations

y ejecutamos las migraciones con el comando:

python manage.py migrate

Si borrar toda la BDD no es posible

Primero debemos limpiar las migraciones con el comando:

python manage.py migrate --fake nombreAplicacion zero

Si queremos comprobar que se limpiaron correctamente ejecutamos el siguiente comando y nos listara de cada aplicación las migraciones respectivas

python manage.py showmigrations

Luego de eso procedemos a borrar todos los archivos en la carpeta migraciones excepto el archivo init.py .

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete

Luego de eso podemos crear de nuevo las migraciones con el comando:

python manage.py makemigrations

y ejecutamos las migraciones agregando la bandera --fake-initial para que django marque las migraciones como ejecutadas cuando realmente no lo hace, para evitar el problema de que algunas tablas ya existen:

python manage.py migrate --fake-initial

Exportar/Importar datos con Django

Para crear un fixture con los datos actuales el comando es:

python manage.py dumpdata api > api/fixtures/all_2020_02_25_final.json

Para cargar datos desde el fixture creado

python manage.py loaddata api/fixtures/all_2020_02_25_final.json

Hecho esto podemos trabajar normalmente con este gran Framework de Python

Autor

Stalin Maza