¿Cómo crear una aplicación Django con Cookiecutter?

cookiecutter-django-1

Django Cookiecutter fue creado por  Pydanny.   Ello permite crear una aplicación Django con una muy buena estructura y mejores prácticas de una forma rápida.

El repositorio oficial está ubicado en: https://github.com/pydanny/cookiecutter-django

A pesar de que la documentación es clara, quiero mostrar todo el proceso para mayor facilidad de quienes apenas están comenzando en Django.

Paso 1: instalar el cortador de galletas

Estando en tu ambiente Python, puedes instalarlo usando pip:

pip instalar cortador de galletas

Teniendo esto, ahora necesitas ubicar la carpeta donde quieres crear tu proyecto. Una vez ubicado, ejecuta el siguiente comando:

cortador de galletas https://github.com/pydanny/cookiecutter-django.git

Después de ello, la consola hará algunas preguntas:

Ha descargado /Users/andres/.cookiecutters/cookiecutter-django antes. ¿Está bien eliminarlo y volver a descargarlo? [sí Sí 
project_name [My Awesome Project]: aplicación de ejemplo 
proyecto_slug [ejemplo_aplicación]: django_ejemplo 
descripción [¡Mira mi increíble proyecto!]: Esta es mi descripción 
nombre_del_autor [Daniel Roy Greenfeld]: Andrés 
nombre_dominio [ejemplo.com]: 
correo electrónico [[email protected]]: 
versión [0.1.0]: 
Seleccione licencia_de_fuente_abierta: 
1 - MIT 
2 - BSD 
3 - GPLv3 
4 - Licencia de software Apache 2.0 
5 - No es de código abierto 
Elija entre 1, 2, 3, 4 , 5 (1, 2, 3, 4, 5) [1]: 5
zona horaria [UTC]: 
ventanas [n]: 
usar_heroku [n]: 
usar_travisci [n]:
usar_pycharm [n]: 
usar_docker [n]: 
Seleccione postgresql_version: 
1 - 10,5 
2 - 10,4 
3 - 10,3 
4 - 10,2 
5 - 10.1 
6 - 9.6 
7 - 9.5 
8 - 9.4 
9 - 9.3 
Elija entre 1, 2, 3, 4, 5, 6, 7, 8, 9 (1, 2, 3, 4, 5, 6, 7, 8, 9) [1]: 1 
Seleccione js_task_runner: 
1 - Ninguno 
2 - Trago 
Elija entre 1, 2 (1, 2) [1]: 1 
custom_bootstrap_compilation [n]: y 
usar_compresor [n]: 
usar_apio [n]: 
usar_mailhog [n]: 
use_sentry [n]: 
usar_ruidoblanco [n]:
keep_local_envs_in_vcs [s]: n 
depurar [n]: 
 [ÉXITO]: Proyecto inicializado, ¡sigan con el buen trabajo!

¡Ahora ya tienes una carpeta con tu nuevo proyecto Django!

Paso 2: Configurar base de datos Postgres

Ahora bien, sí intentamos ejecutar las migraciones vamos a obtener un error acerca de una base de datos no existente, entonces debemos configurar primero la base de datos. Para ello, emplearemos el Postgres que tiene por defecto. 

Sí, viene con Postgres por defecto y puedes cambiarlo, pero definitivamente siempre es mejor usar Postgres.

Preparemos la base de datos:

postgres psql

Voy a crear una base de datos ejemplo con un usuario example_user y una contraseña password :

-- Crear el proyecto de base de datos 
ejemplo CREAR BASE DE DATOS; 

-- Crear usuario para la base de datos 
CREAR ROL ejemplo_usuario 
CON CONTRASEÑA ENCRIPTADA 'contraseña' 
CREADODB; 

-- Otorgar privilegios al usuario para acceder a la base de datos 
OTORGAR TODOS LOS PRIVILEGIOS EN LA BASE DE DATOS ejemplo 
TO ejemplo_usuario;

En este punto, deberíamos tener una base de datos vacía y funcionando con el usuario especificado.

En ese orden, le diremos a Django la información de la base de datos. Para hacerlo, definimos una variable de entorno  DATABASE_URL,  utilizando la convención de Django:

Si te encuentras en un ambiente Unix este comando hace el trabajo:

export DATABASE_URL=postgres://ejemplo_usuario:contraseña@localhost:5432/ejemplo

Paso 3: instala los requisitos de Python

Ve a la carpeta creada e instala los requisitos de Python, así: 

cd django_ejemplo 
pip install -r requisitos/local.txt

Después de esto, deberías poder ejecutar las migraciones de Django sin ningún problema:

python manage.py migrar

Y deberías obtener algo como lo siguiente:

python manage.py migrar 
Operaciones a realizar: 
  Aplicar todas las migraciones: cuenta, administrador, autenticación, tipos de contenido, sesiones, sitios, cuenta social, usuarios 
Ejecutando migraciones: 
  Aplicando contenttypes.0001_initial... Aceptar 
  Aplicando contenttypes.0002_remove_content_type_name... Aceptar Aplicando auth.0001_initial 
  ... OK 
  Aplicando auth.0002_alter_permission_name_max_length... OK 
  Aplicando auth.0003_alter_user_email_max_length... OK Aplicando auth.0004_alter_user_username_opts... OK 
  Aplicando auth.0005_alter_user_last_login_null... OK 
  Aplicando auth.0006_require00_contenttypes... Aceptar 
  _0 
  Aplicando auth.0007_alter_validators_add_error_messages... OK 
  Aplicando auth.0008_alter_user_length... username 
  Aplicando usuarios.0001_inicial... Aceptar Aplicando 
  cuenta.0001_inicial ... Aceptar Aplicando 
  cuenta.0002_email_max_length ... Aceptar Aplicando 
  admin.0001_initial ... Aceptar 
  Aplicando admin .0002_logentry_remove_auto_add... Aceptar 
  Aplicando auth.0009_alter_user_last_name_max_length... OK 
  Aplicando sesiones.0001_inicial... Aceptar Aplicando sitios.0001_inicial 
  ... Aceptar 
  Aplicando sites.0002_alter_domain_unique 
  ... Aceptar Aplicando sites.0003_set_site_domain_and_name... OK 
  Aplicando socialaccount.0001_initial ... OK
  Aplicando socialaccount.0002_token_max_lengths... OK 
  Aplicando socialaccount.0003_extra_data_default_dict... OK

Paso 4. Ejecuta el servidor

Finalmente, sí todo salió bien, es momento de ejecutar el servidor. 

python manage.py servidor de ejecución

 


Tendrá una bonita página de inicio para ser visualizada, gracias a la plantilla de inicio predeterminada con Django Cookiecutter.