Desarrollado por Cookiecutter, Cookiecutter Django es un marco para impulsar rápidamente proyectos Django listos para producción.
Estas funciones se pueden habilitar durante la configuración inicial del proyecto.
Este proyecto es un proyecto de código abierto dirigido por voluntarios. Puedes patrocinarnos a través de OpenCollective o individualmente a través de GitHub Sponsors:
Proyectos que brindan apoyo financiero a los mantenedores:
¡Two Scoops of Django 3.x es la mejor referencia de Django con temática de helado del universo!
PyUp le ofrece actualizaciones automatizadas de seguridad y dependencia utilizadas por Google y otras organizaciones. ¡Gratis para proyectos de código abierto!
Supongamos que desea crear un proyecto Django llamado "redditclone". En lugar de usar startproject
y luego editar los resultados para incluir su nombre, correo electrónico y varios problemas de configuración que siempre se olvidan hasta el peor momento posible, haga que cookiecutter haga todo el trabajo.
Primero, consigue Cookiecutter. Créame, es increíble:
$ pip install "cookiecutter>=1.7.0"
Ahora ejecútelo en este repositorio:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
Se le solicitarán algunos valores. Proporciónelos y luego se creará un proyecto Django para usted.
Advertencia : Después de este punto, cambie 'Daniel Greenfeld', 'pydanny', etc. por su propia información.
Responda las indicaciones con las opciones que desee. Por ejemplo:
Cloning into 'cookiecutter-django'...
remote: Counting objects: 550, done.
remote: Compressing objects: 100% (310/310), done.
remote: Total 550 (delta 283), reused 479 (delta 222)
Receiving objects: 100% (550/550), 127.66 KiB | 58 KiB/s, done.
Resolving deltas: 100% (283/283), done.
project_name [My Awesome Project]: Reddit Clone
project_slug [reddit_clone]: reddit
description [Behold My Awesome Project!]: A reddit clone.
author_name [Daniel Roy Greenfeld]: Daniel Greenfeld
domain_name [example.com]: myreddit.com
email [[email protected]]: [email protected]
version [0.1.0]: 0.0.1
Select open_source_license:
1 - MIT
2 - BSD
3 - GPLv3
4 - Apache Software License 2.0
5 - Not open source
Choose from 1, 2, 3, 4, 5 [1]: 1
Select username_type:
1 - username
2 - email
Choose from 1, 2 [1]: 1
timezone [UTC]: America/Los_Angeles
windows [n]: n
Select an editor to use. The choices are:
1 - None
2 - PyCharm
3 - VS Code
Choose from 1, 2, 3 [1]: 1
use_docker [n]: n
Select postgresql_version:
1 - 16
2 - 15
3 - 14
4 - 13
5 - 12
Choose from 1, 2, 3, 4, 5 [1]: 1
Select cloud_provider:
1 - AWS
2 - GCP
3 - None
Choose from 1, 2, 3 [1]: 1
Select mail_service:
1 - Mailgun
2 - Amazon SES
3 - Mailjet
4 - Mandrill
5 - Postmark
6 - Sendgrid
7 - Brevo (formerly SendinBlue)
8 - SparkPost
9 - Other SMTP
Choose from 1, 2, 3, 4, 5, 6, 7, 8, 9 [1]: 1
use_async [n]: n
use_drf [n]: y
Select frontend_pipeline:
1 - None
2 - Django Compressor
3 - Gulp
4 - Webpack
Choose from 1, 2, 3, 4 [1]: 1
use_celery [n]: y
use_mailpit [n]: n
use_sentry [n]: y
use_whitenoise [n]: n
use_heroku [n]: y
Select ci_tool:
1 - None
2 - Travis
3 - Gitlab
4 - Github
Choose from 1, 2, 3, 4 [1]: 4
keep_local_envs_in_vcs [y]: y
debug [n]: n
Entra en el proyecto y echa un vistazo:
$ cd reddit/
$ ls
Crea un repositorio de git y envíalo allí:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
Ahora eche un vistazo a su repositorio. No olvide mirar atentamente el archivo README generado. Impresionante, ¿verdad?
Para desarrollo local, consulte lo siguiente:
Puede notar que algunos elementos de este proyecto no coinciden exactamente con lo que describimos en el capítulo 3. La razón es que este proyecto, entre otras cosas, sirve como banco de pruebas para probar nuevas ideas y conceptos. A veces funcionan, a veces no, pero el resultado final es que no necesariamente coincidirá exactamente con lo que se describe en el libro del que soy coautor.
Si está utilizando PyUp para mantener sus dependencias actualizadas y seguras, utilice el código cortador de cookies durante el pago para obtener un 15 % de descuento cada mes.
Esparcidos por Python y HTML de este proyecto hay lugares marcados con "tus cosas". Aquí es donde se integrarán las bibliotecas de terceros con su proyecto.
Para obtener soporte completo para MySQL además del Postgresql predeterminado, puede usar esta bifurcación de cookiecutter-django: https://github.com/mabdullahadeel/cookiecutter-django-mysql
¿Necesita una versión estable? Puede encontrarlos en https://github.com/cookiecutter/cookiecutter-django/releases
Esto es lo que quiero. Puede que no sea lo que quieres. No te preocupes, tienes opciones:
Si tiene diferencias en su configuración preferida, le recomiendo que bifurque esto para crear su propia versión. Una vez que tenga su bifurcación funcionando, hágamelo saber y la agregaré a una lista de ' Plantillas de Cookiecutter similares ' aquí. Depende de usted cambiar el nombre de su bifurcación.
Si cambia el nombre de su bifurcación, le recomiendo que la envíe a los siguientes lugares:
Aceptamos solicitudes de extracción si son pequeñas, atómicas y mejoran nuestra propia experiencia de desarrollo de proyectos.
¿Tienes un blog o una publicación en línea? Escriba sobre sus consejos y trucos de cookiecutter-django y luego envíenos una solicitud de extracción con el enlace.