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.
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 [andres@example.com]: 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 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:
export DATABASE_URL=postgres://ejemplo_usuario:contraseña@localhost:5432/ejemplo
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
Finalmente, sí todo salió bien, es momento de ejecutar el servidor.
python manage.py servidor de ejecución