
# Dependencias

* **Django**: framework django
* **psycopg2-binary**: permite uso de base datos postgres
* **djangorestframework**: permite crear rest api json
* **django-cors-headers**: requerido para desarrollo de frontend, permite acceso desde una dominio distinto al backend
* **coreapi**: genera documentación de rest api
* **python-decouple**: lee archivo .env para variables de ambiente
* **PyJWT**: permite generar json-web-token
* **pymongo**: permite conectarse a base datos mongo


# Docker

Para iniciar la aplicacion usando docker

~~~bash
cd <carpeta del proyecto>/docker
docker compose up -d
~~~



# Script para levantar aplicacion python

**start.sh**

~~~bash
#!/bin/sh
cd /app

# si no existe directorio de ambiente, se crea
if [ ! -d /app/libs ]; then
  python -m venv libs
  . ./libs/bin/activate
  pip install -r requirements.txt
fi

# activar ambiente con dependencias
. ./libs/bin/activate

# si no existe un proyecto inicial, lo crea
if [ ! -d /app/project ]; then
  django-admin startproject project
fi

# iniciar servidor con puerto 8000
python /app/project/manage.py runserver 0.0.0.0:8000
~~~

# Extraer models de base de datos

~~~bash
python manage.py inspectdb > api/models.py
~~~

