El siguiente proyecto se puede utilizar como plantilla base para crear cualquier proyecto con el framework de Django.
Para utilizar este proyecto debemos de seguir los siguientes pasos.
git clone [email protected]:ServerJon/django-basic.git
O también puedes crear uno nuevo con la opción de Usa esta plantilla
Cambiar cualquier referencia de django_basic o django-basic por el nombre de tu proyecto. Los ficheros a modificar son:
- manage.py
- Dockerfile
- docker-compose.yml
- Carpeta raíz django_basic
- asgi.py
- Carpeta settings (y cualquier fichero hijo de configuración: base, dev, prod, etc)
- wsgi.py
- docker-compose.yml
- Dockerfile
TODO: Crea un script para hacer esto de forma automática
En la raíz de nuestro proyecto debemos crear un fichero secret.json y crear las variables de entorno para nuestro proyecto:
{
"FILENAME": "secret.json",
"SECRET_KEY": "django-insecure-05)jvx573+7yi3(c8_8zlpu^!=wf=4c=_kk3c+lh!6j@yv^43b",
"DB_NAME": "basicdb",
"USER_DB": "ServerJon",
"PWD_DB": "serverjon"
}
Se recomienda modificar el SECRET_KEY para mayor seguridad.
El proyecto está configurado para trabajar con los contenedores de Docker:
docker-compose up
Una vez levantado el entorno podríamos trabajar dentro del mismo contenedor con toda la configuración instalada como por ejemplo con PyCharm o VSCode.
Si por el contrario queremos trabajar desde un entorno en local se recomienda utilizar un entorno virtual para poder trabajar. Se recomienda seguir los siguientes pasos:
- Se recomienda utilizar un gestor de versiones de python como por ejemplo pyenv.
- Comprobar que se tiene instalado python en una de sus últimas versiones, el proyecto trabaja con python3.
- Crear un entorno virtual de trabajo e instalar con pip los modulos del fichero requirements.txt y requirements-dev.txt.
- En caso de usar un entorno virtual solamente será necesario levantar el docker de la base de datos de mysql.
- Si en la instalación nos da un error el modulo de mysqlclient debemos instalar una serie de paquetes. En el siguiente tenemnos las diferentes opciones para Ubuntu, Mac o Windows: pip install mysqlclient error
Como primer comando a ejecutar una vez levantado todo el entorno de trabajo será crear la base de datos a trabajar. Para ello se ejecutarán el siguiente comando:
python manage.py migrate
Una vez tengamos el entorno de trabajo levantado y el servidor en marcha debemos crear un usuario super admin para poder acceder a la zona de administración de django. Para ello ejecutaremos el siguiente comando y rellenaremos los campos que nos pidan:
python manage.py createsuperuser
Si estamos trabajando con Docker debemos ejecutar el comando a través del contenedor web.
Para poder trabajar de forma optima con nuestro proyecto se utilizarán los módulos de pre-commit y black. Para utilizarlos tan solo es necesario instalar el fichero de requirements-dev.txt. Una vez instalados todos los paquetes necesarios ejecutaremos el siguiente comando y estará todo listo:
pre-commit install
Si no quisieramos que verificara nuestro código podremos añadir al comando de git commit el argumento de --no-verify:
git commit -m"mensaje" --no-verify
-
Cuando se crea una nueva aplicación desde el docker de django se crearán los permisos como usuario root por lo que deberemos de cambiarlos para poder trabajar con esos ficheros. El comando será:
sudo chown -R $USER:$USER .
-
Eliminar repositorio para enlazar con el que queramos:
git remote remove origin
git remote add origin your_git_project
-
Se recomienda utilizar Docker secrets para guardar información sensible como los datos de la base de datos del fichero docker-compose.