Saltar a contenido

🛠 Unidad ISS-00 · Entorno y proyecto Django — capa 🛠 CONSTRUIR

🧠 Comprender este bloque → · ✅ GATE de la unidad

Capa Página Para qué
🧠 Aprender Guía de estudio comprender, explicar y relacionar
🛠 Construir esta página ejecutar, programar y verificar
✅ GATE Condiciones de cierre condición para pasar al bloque siguiente

Esta es la guía ejecutable. El cuerpo de abajo es el ISS técnico verbatim: comandos, rutas, versiones, verificaciones y criterios, sin simplificar.


ISS-00 — Entorno y proyecto Django

Objetivo

Crear el entorno aislado y el proyecto Django config, sin modelos todavía.

Requisitos

  • Python 3.12.
  • El directorio del proyecto vacío.
  • Red para instalar Django 5.2.17.

Construcción

La CLI crea el entorno y el proyecto. No se escribe manage.py a mano.

python3 -m venv sí usa el Python del sistema, una sola vez, para crear .venv. El resto de los comandos, en este ISS y en todos los siguientes, van con el python del entorno.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install "Django==5.2.17"
django-admin startproject config .
python -m pip freeze > requirements.txt
python -m django --version

pip siempre va con el entorno activo: source .venv/bin/activate y después python -m pip. Un python3 -m pip del sistema instala los paquetes fuera del proyecto.

Desde el ISS-01, python3 manage.py no depende de esa activación. manage.py detecta que el intérprete no es .venv y vuelve a lanzarse con .venv/bin/python, que es donde quedaron Django, python-dotenv y los drivers.

startproject config . deja manage.py en la raíz y el paquete de configuración en config/. No se crea una carpeta storelab/storelab/: el paquete se llama config para que settings, urls, wsgi y asgi tengan un nombre estable.

.gitignore no lo genera Django. Es un archivo nuevo:

cat > .gitignore <<'EOF'
.venv/
__pycache__/
*.py[cod]
.env
db.sqlite3
*.log
.idea/
.vscode/
staticfiles/
media/
.pytest_cache/
htmlcov/
.coverage
EOF

Explicación

  • Librería. Django==5.2.17 es la única de este ISS. Trae el ORM, el admin, startproject y manage.py. DRF, dotenv y los drivers llegan en ISS posteriores.
  • .venv. Aísla pip del sistema. El prompt queda (.venv).
  • django-admin. Es la CLI de un Django ya instalado, antes de que exista manage.py.
  • manage.py. Fija DJANGO_SETTINGS_MODULE=config.settings. Todavía no importa dotenv. El ISS-01 instala python-dotenv y agrega el salto a .venv antes de ese import.
  • .gitignore. Archivo nuevo. Django no lo genera. .venv/ y .env quedan fuera del repositorio.
ISS-00
  manage.py
  config/settings.py     # aún el archivo generado; ISS-01 lo convierte en paquete
  config/urls.py         # URLconf raíz: todavía solo admin/
  config/wsgi.py
  config/asgi.py

config/urls.py es la entrada de toda petición. startproject deja ROOT_URLCONF = "config.urls" y una lista urlpatterns con path("admin/", admin.site.urls). startapp no crea urls.py en la app: ese archivo aparece cuando un ISS publica un endpoint e include lo cuelga de este URLconf.

Criterios de aceptación

  • AC-00-01: python -m django --version imprime 5.2.17.
  • AC-00-02: existen manage.py y config/urls.py.
  • AC-00-03: no hay modelos de negocio.

Verificación

python -m django --version
python manage.py check

En este ISS check todavía puede usar SQLite, el default de startproject. ISS-01 lo reemplaza. No se declara el proyecto multidialecto hasta esa unidad.

Evidencias

  • EVI-00-01: Django 5.2.17 instalado en .venv.
  • EVI-00-02: árbol config/ generado por la CLI.

GATE

AC Verificación Evidencia Resultado
AC-00-01 versión de Django EVI-00-01 PASS
AC-00-02 archivos del proyecto EVI-00-02 PASS
AC-00-03 ausencia de modelos de negocio inspección del árbol en este ISS PASS

✅ GATE de la unidad ISS-00 — este bloque no añade ningún criterio nuevo.

Las condiciones de cierre son las de esta misma página:

Con el GATE en verde queda habilitado el bloque siguiente de la ruta.

Navegación de la ruta: ← ISS-00 · 🧠 Aprender · ↑ Ruta Django · → ISS-01 · 🧠 Aprender