Saltar a contenido

Configuración del entorno y uso#

iThome Ironman 2024

Este es el artículo número 6 de la serie de tutoriales de Django Ninja.

En el artículo anterior conocimos las herramientas de desarrollo de Python utilizadas en todo el proyecto.

Este artículo te guiará paso a paso para completar la configuración del entorno del proyecto de ejemplo: desde la instalación de Python, Poetry, la clonación del proyecto a tu máquina local, la creación del entorno virtual de Python, hasta el inicio exitoso de Django.

Incluso si nunca has utilizado estas herramientas, siguiendo las instrucciones de esta guía deberías poder completar la configuración del entorno y ejecutar el proyecto sin contratiempos.

Cabe mencionar que he utilizado Mac durante mucho tiempo y no estoy tan familiarizado con el entorno de Windows, pero haré todo lo posible por proporcionar las alternativas o indicaciones correspondientes.

Bien, ¡comencemos!

Proyecto de ejemplo en GitHub#

👉 Django-Ninja-Tutorial


1. Instalación de Python 3.12#

Dado que no en todos los entornos es conveniente instalar pyenv (especialmente porque no es compatible con Windows), aquí explicaremos únicamente la alternativa para quienes no usen pyenv.

Si deseas instalar Python mediante pyenv, puedes consultar los artículos tutoriales mencionados en la entrega anterior.

Descargaremos e instalaremos Python 3.12 directamente desde el sitio web oficial de Python.

Usuarios de Windows#

  1. Dirígete a la página de descargas oficial de Python y descarga el instalador de Python 3.12 para Windows.
  2. Ejecuta el archivo instalador descargado y asegúrate de marcar la casilla «Add Python 3.12 to PATH».
  3. Al finalizar la instalación, abre el símbolo del sistema e ingresa python --version para verificar si la instalación fue exitosa.

Usuarios de macOS#

Para los usuarios de macOS, existen varios métodos para instalar Python 3.12:

  1. Usar pyenv: Esta es mi recomendación personal.
  2. Usar el instalador oficial: Dirígete al sitio web oficial de Python, descarga el instalador para macOS y sigue las instrucciones para completar la instalación.
  3. Usar Homebrew: Si ya tienes instalado Homebrew, puedes ejecutar brew install [email protected] en la terminal para instalar Python 3.12.

Una vez completada la instalación, ingresa python3 --version en la línea de comandos para verificar si la instalación fue exitosa.

Independientemente del método de instalación que elijas, asegúrate de verificar que la versión de Python sea la correcta mediante el comando anterior. Cualquier versión 3.12.x es adecuada.

 python3 --version
Python 3.12.5

2. Instalación y configuración de Poetry#

Todos los paquetes de Python en el proyecto están gestionados por Poetry; lo primero es instalar Poetry. Puedes instalarlo directamente a través del comando oficial: (los siguientes comandos aplican para usuarios de macOS y Linux)

curl -sSL https://install.python-poetry.org | python3 -

Una vez completada la instalación, añade la ruta del ejecutable de Poetry a la variable PATH del sistema: (Usuarios de Zsh)

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Usuarios de Bash:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Verifica si la instalación fue exitosa:

 poetry --version
Poetry (version 1.4.0)

Instalación y configuración de Poetry en Windows#

Los usuarios de Windows pueden consultar el tutorial de configuración de Poetry de JetBrains, el cual considero que está muy bien explicado.

Modificar la configuración config de Poetry para usar entornos virtuales .venv#

Por defecto su valor es false, lo que hace que Poetry cree el entorno virtual en un directorio independiente, ¡y con un nombre muy largo!

Al cambiarlo a true, se creará el entorno virtual directamente en el directorio raíz del proyecto, con el nombre fijo .venv.

poetry config virtualenvs.in-project true

Ubicar el entorno virtual dentro del propio proyecto es una práctica que personalmente prefiero.

Alternativa sin utilizar Poetry#

En el proyecto se ha preparado un archivo requirements.txt para los lectores acostumbrados a usar pip, evitando la molestia de instalar y configurar Poetry.


3. Descarga del proyecto desde GitHub y creación del entorno virtual#

A continuación realizaremos la configuración del proyecto en sí.

1. Clonar el proyecto#

Aquí tienes el enlace al proyecto. Utiliza el comando git clone:

git clone https://github.com/kyomind/Django-Ninja-Tutorial.git
# o
git clone [email protected]:kyomind/Django-Ninja-Tutorial.git

2. Crear el entorno virtual e instalar los paquetes#

Ingresa al directorio del proyecto y utiliza Poetry para crear el entorno virtual:

poetry env use 3.12

En este punto, debería crearse una carpeta .venv en la raíz del proyecto, la cual representa el entorno virtual del proyecto, que por el momento está vacía.

Utiliza poetry shell para activar el entorno virtual.

A través de poetry install, instala los paquetes: Poetry descargará e instalará automáticamente todos los paquetes requeridos por el proyecto según el contenido de pyproject.toml y poetry.lock.

Usuarios de pip#

Los usuarios de pip pueden crear el entorno virtual siguiendo estos pasos: (todo el proceso se realiza en el directorio raíz del proyecto)

  1. Usar el módulo venv integrado en Python para crear el entorno virtual: python -m venv .venv
  2. Activar el entorno virtual:
    • Windows: .venv\Scripts\activate
    • macOS/Linux: source .venv/bin/activate
  3. Instalar los paquetes: pip install -r requirements.txt

4. Inicializar pre-commit#

Tras crear el entorno virtual y ejecutar poetry install, el paquete pre-commit habrá quedado instalado en el entorno virtual.

Como puedes ver, en el proyecto existe un archivo .pre-commit-config.yaml. Este archivo define los elementos de verificación a ejecutar antes de cada commit (Git Hooks).

Solo necesitamos instalar los Git Hooks mediante el siguiente comando:

pre-commit install

Este comando creará los Git Hooks en el directorio Git del proyecto; solo es necesario ejecutarlo una vez por proyecto.


5. Instalación de extensiones para VS Code#

Si tu IDE es VS Code, recomiendo encarecidamente instalar las extensiones de Ruff y Mypy. Esto te permitirá conocer de inmediato el estado actual del código (si existe algún problema).

En principio, ambas extensiones no requieren configuración tras instalarse, ya que en el proyecto ya existen los archivos de configuración correspondientes:

  1. Ruff: pyproject.toml
  2. Mypy: mypy.ini (en el avance más reciente del proyecto se ha integrado en pyproject.toml)

Además, al ser ambas herramientas CLI, también puedes ejecutarlas manualmente; por ejemplo, para ejecutar la verificación de Ruff:

ruff check
ruff format

O ejecutar la verificación de Mypy:

mypy .

Sin embargo, las extensiones de VS Code siguen siendo la opción más conveniente.


6. Iniciar el proyecto Django#

Una vez completadas todas las configuraciones de herramientas necesarias, podemos proceder a iniciar el servidor de Django.

1. Ejecutar las migraciones de base de datos#

Este es un paso indispensable al inicio:

python manage.py migrate

De hecho, en el proyecto se ha preparado un Makefile, por lo que también puedes ejecutar las migraciones con el siguiente comando:

make migrate

Para una presentación y tutorial sobre Makefile, puedes consultar el artículo de Xiao Ke «También puedes usar Makefile en desarrollo Web: Gestiona adecuadamente los flujos de tu entorno».

2. Iniciar el servidor de desarrollo#

Ejecuta el siguiente comando para iniciar el servidor de desarrollo de Django:

python manage.py runserver
# o
make run

A continuación, abre tu navegador y visita http://127.0.0.1:8000/. ¡Deberías ver la página de bienvenida predeterminada de Django, lo que indica que el proyecto se ha iniciado con éxito!

Página de bienvenida predeterminada de Django


Resumen#

Siguiendo los pasos anteriores, has completado con éxito la configuración del entorno de desarrollo del proyecto y has iniciado el proyecto de ejemplo en Django.

Si encuentras problemas durante la configuración, puedes consultar la documentación oficial de las herramientas o revisar los tutoriales de mi blog; estos recursos te ayudarán a resolver dudas comunes o a comprender mejor sus funciones.

Ramas del proyecto y PRs#

Durante el desarrollo del proyecto, utilizaremos ramas de Git y PRs de GitHub (Pull requests) para gestionar los cambios de código del proyecto correspondientes a cada capítulo.

De esta manera se mantiene clara y organizada la secuencia de aprendizaje, evitando que el código de diferentes funciones se mezcle y dificulte la comprensión.

Cabe señalar que no cada artículo cuenta con su propia rama y PR, ya que algunos artículos abordan únicamente explicaciones conceptuales sin cambios de código.


Recomendación de CodeGPT#

Además, casi todos los mensajes de commit de este proyecto se generaron automáticamente mediante CodeGPT, desarrollado por Wu, junto con la API de GPT-4o mini.

Commit message by CodeGPT

A fin de cuentas, incluso tratándose de un proyecto de ejemplo, pensar en el contenido de cada mensaje de commit no resulta sencillo. Con una herramienta de automatización como esta, ¡las cosas son realmente mucho más fáciles! Además, la coherencia del estilo es muy alta, algo perfecto para obsesivos como yo ☺️

Sobre CodeGPT, además de la presentación en su página de GitHub, puedes consultar la charla de Wu «Experiencia de desarrollo con IA Generativa CodeGPT - Taipei ModernWeb», que incluye las diapositivas compartidas.

Para un tutorial de uso, puedes consultar la guía de Will «Presentación de una herramienta útil: CodeGPT (Uso de GPT para generar automáticamente mensajes de Commit Log en Git)».


Ahora que todo está listo, ingresemos oficialmente al mundo de Django Ninja.