Cómo crear un proyecto Django a partir de una plantilla

¡Hola de nuevo! Especialmente para los estudiantes del curso "Desarrollador web en Python", hemos preparado otra traducción interesante.





Una plantilla de proyecto Django es una forma natural de resolver los problemas que surgen cuando el formato predeterminado del proyecto Django ya no cumple con los requisitos. Hoy en esta guía aprenderá a crear su propio proyecto a partir de una plantilla.

¿Qué es una plantilla de proyecto en Django?


Una de las características poco conocidas de Django es la capacidad de crear un proyecto a partir de una plantilla, es decir, una estructura de directorios personalizada.

Esto es conveniente cuando el formato predeterminado del proyecto ya no es suficiente (y definitivamente no será suficiente cuando desee implementar su solución en producción, créanme), o cuando llegue al punto en el que utilizará las mismas configuraciones una y otra vez para muchos proyectos en Django.

Una plantilla de proyecto de Django no es más que un proyecto con una estructura de directorios personalizada predefinida que puede crear usted mismo en minutos.
Un ejemplo de la popular plantilla de Django es el django-cookiecutter . Cortador de galletas DjangoTiene una amplia gama de funciones y configuraciones que están listas para la implementación autosuficiente en producción, esta es la ruta que se puede usar para crear casi cualquier proyecto nuevo en Django.

Sin embargo, el django-cookiecutter a veces es redundante, especialmente para principiantes, por lo que antes de usarlo, cree una plantilla Django más simple que pueda ayudarlo a comprender los conceptos básicos.

En las siguientes secciones, aprenderá cómo crear su propia plantilla.

Cómo crear tu propia plantilla de proyecto Django


Para comenzar, cree un entorno virtual de Python en la carpeta seleccionada e instale Django (tenga en cuenta que estos son cuatro comandos separados):

mkdir project-name && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Luego crea un proyecto Django con:

django-admin startproject project_name .

Presta atención al nombre, debe ser exactamente nombre_proyecto . Después de eso, abra el proyecto en el editor.

(Tenga en cuenta que en nuestro ejemplo, usé project_name para la carpeta y para el nombre del proyecto).

Ahora necesita mirar cada archivo en el proyecto y reemplazar todo project_name con {{project_name}} (un comando sed de una sola línea está bien).

Archivos que necesitará modificar:

  • manage.py
  • settings.py
  • wsgi.py
  • asgi.py

Como habrás adivinado, la variable {{project_name}} es un marcador de posición. Por ejemplo, en manage.py deberá reemplazar lo siguiente:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
    try:
# omit

En este:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')
    try:
# omit

En wsgi.py cambia esto:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

A lo siguiente:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')

Etc.

Además, puede crear cualquier configuración que desee, o incluso mejor, analizar la configuración de Django en archivos separados para desarrollo, prueba y producción. Encontrarás un ejemplo aquí .

Antes de continuar con el siguiente paso, asegúrese de eliminar el entorno virtual de la plantilla del proyecto.

Cómo crear un proyecto Django desde tu propia plantilla


Ahora que tiene la plantilla del proyecto, puede usarla.

Para hacer esto, cree un nuevo entorno virtual de Python en otra carpeta e instale Django:

mkdir new-django-project && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Ahora, en lugar de solo ejecutar django-admin startproject , pasaremos el indicador --template para instalar desde nuestra plantilla. Suponga que si crea una plantilla en su directorio de inicio ~ / project-name , haría lo siguiente:

django-admin startproject --template ~/project-name new_django_project .

Este comando creará un nuevo proyecto Django a partir de la plantilla.

(Tenga en cuenta que en este ejemplo, usé new-django-project como carpeta externa y new_django_project para el nombre del proyecto).

Ahora puede preguntarse si es posible usar una plantilla remota desde el repositorio en GitHub, por ejemplo. ¡Sí, por supuesto!

Cómo crear un proyecto Django desde una plantilla remota


El indicador --template para startproject puede aceptar una URL como fuente remota. Por lo tanto, puede crear un proyecto Django desde una plantilla remota, por ejemplo:

django-admin startproject --template https://github.com/username/repo/archive/master.zip new_django_project .

Bonus: plantillas para todo


Además de estandarizar archivos relacionados con Django, puede hacer lo mismo para cualquier otro archivo en el proyecto.

Imagine que necesita implementar en Heroku donde se requiere un Procfile . Para pasar Procfile a través del sistema de plantillas de manera que {{}} project_name se sustituye por el nombre real del proyecto, puede ejecutar startproject con el --name bandera .

django-admin startproject --template https://github.com/username/repo/archive/master.zip --name=Procfile new_django_project .

Asegúrese de que Procfile tenga un marcador de posición para project_name :

release: python manage.py migrate
web: gunicorn -w 3 {{ project_name }}.wsgi --log-file -

Fuentes


Para crear una plantilla sofisticada de Django, eche un vistazo a ponee , una plantilla ligera de Django, lista para usar con Heroku.

Aquí hay un material tan pequeño pero interesante. Esperamos sus comentarios y estamos invitados a un seminario web gratuito , en cuyo marco aprenderemos en detalle cómo probar proyectos en Flask, escribir y ejecutar pruebas para proyectos en Flask, crear datos de prueba usando Faker y Factory Boy.

All Articles