Skip to content

jonma0107/Django-template-with-Postgresql

Repository files navigation

Plantilla de Django con Postgresql

Hemos creado con DOCKER una plantilla con la imagen de Python y Postgresql para empezar a crear proyectos de Django.

Inicialmente descargamos los archivos comprimidos en nuestro computador local, en la carpeta en donde sea ha descomprimido se crea otra carpeta donde quedará alojado todo nuestro proyecto de Django, de no hacerlo los archivos que se vayan a crear con el Framenwork de Django estarían mezclandsose con los archivos descomprimidos de Docker.

https://i.ibb.co/gzHwMfy/carpeta.jpg

Una vez configurados los archivos Dockerfile, docker-compose.yml, y requirements.txt, damos los respectivos comandos de Docker para crear las imágenes y servicios a partir de la configuración implementada:

Para definir las dependecias desde Dockerfile:

docker build .

Para indicar cómo correr las imágenes y servicios desde docker-compose.yml:

docker-compose build

Cabe anotar que se ha integrado para ejecutar tareas desde la barra de estados de Visual Studio Code, mediante el archivo tasks.json, esto nos permitirá con un solo click ejecutar las tareas sin necesidad de trasncribir los comandos en la terminal:

https://i.ibb.co/bX4RbJP/tasks2.jpg https://i.ibb.co/d5WwPHJ/tasks.jpg

Una vez construido nuestro contenedor con sus respectivas imágenes y servicios, procedemos a hacer uso de Django para crear nuestro proyecto:

docker-compose run --rm app sh -c "django-admin startproject project ."

https://i.ibb.co/BwYYLw1/startproject.jpg

Cómo podemos observar encerramos entre comillas los comandos de Python que darán ordenes dentro de nuestro contenedor de Docker, en este caso hemos ejecutado la orden de la creación de un proyecto de Django. De igual manera y para fines práticos en Visual Studio Code hemos automatizado dicha orden mediante un boton en la barra de estados del editor. Es importante tener en cuenta que para acceder mediante la barra de estados a las tareas automatizadas hay que instalar la extensión TASKS de Visual Studio Code:

https://i.ibb.co/3mV9yNT/tasks3.jpg

El proyecto necesita configuración antes de levantar los servicios de Docker.

Configurar settings.py en cuanto a importar os y en cuanto a la configuración de la base de datos: https://i.ibb.co/jhwqN0c/os.jpg https://i.ibb.co/8cvQttS/db.jpg

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': os.environ.get('DB_HOST'),
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASS'),
    }
}

Las variables de entorno que se implementan en la configuración de la base de datos están declaradas en el archivo docker-compose.yml

Hay una configuración adicional, para quienes ver desde su entorno local en la web con la url http://0.0.0.0:8000/:

https://i.ibb.co/v11XTCx/host.jpg

Al crear el proyecto mediante startproject y después de configurar settings.py veremos que dicho proyecto se aloja en la carpeta que de forma anticipada hemos creado al principio después de descomprimir los archivos de esta plantilla:

https://i.ibb.co/6Pmh2J5/start.jpg

Procedemos a levantar el servicio de docker, si queremos ver que nuestro proyecto recién creado en el contenedor funciona, de esta manera podemos ver el servidor de DJango uncionando en la web:

docker-compose up -d

https://i.ibb.co/C5MqwFb/up.jpg

En la barra de url de nuestro navegador podemos ingresar con http://0.0.0.0:8000/ ó http://localhost:8000/

https://i.ibb.co/tpKr9k0/django.png

Nota: podemos verificar desde la terminal los contenedores levantados por Docker, con el siguiente comando:

docker-compose ps

BASE DE DATOS

Ahora necesitamos migrar las tablas que por defecto tiene Django para iniciar nuestra base de datos. Y a partir de eso crear un superusuario:

1.) Podemos ingresar con el servicio de Docker levantado con el atajo que se encuentra en la barra de estados:

https://i.ibb.co/dmcB361/shell.jpg

2.) Dicho atajo ejecutará la tarea que abre la shell de Python:

https://i.ibb.co/VJ1WSBq/shell2.jpg

3.) En shell de Python digitamos:

python manage.py migrate

Esto generará que se migren las tablas que por defecto tiene Django:

https://i.ibb.co/b6GPs1n/migrate.jpg

Nota: si se necesita borrar la base de datos que se creó en el volumen de Docker, puede hacero mediante el siguiente comando, lo cual le permite migrar Nuevamente las tablas de Django:

docker volume rm project-django-main_dev-db-data

(docker volume rm Nombre del Proyecto_Volumen de la Base de Datos)

Nota : si quieres acceder a postgresql desde la terminal, digita el siguiente comando:

psql -h localhost -U devuser -d devdb -W

y accedes con la contraseña parametrizada en el archivo docker-compose.yml

Flake8

Flake8 es una herramienta de linting y verificación de código para Python. Su objetivo principal es ayudar a los desarrolladores a mantener un código Python limpio y legible mediante la identificación de errores de estilo y problemas potenciales en el código fuente.

El comando para ejecutar flake8 y verificar nuestro código:

docker-compose run --rm app sh -c "flake8"

La configuración de Flake8 en nuestra plantilla se puede conocer con más detalle en el commit d56e45049189c7d7231d49f48088f8aa8ae0a468 - [ADD] implementing flake8 to verify clean code

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published