🛠 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.17es la única de este ISS. Trae el ORM, el admin,startprojectymanage.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 existamanage.py.manage.py. FijaDJANGO_SETTINGS_MODULE=config.settings. Todavía no importadotenv. El ISS-01 instalapython-dotenvy agrega el salto a.venvantes de ese import..gitignore. Archivo nuevo. Django no lo genera..venv/y.envquedan 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 --versionimprime 5.2.17. - AC-00-02: existen
manage.pyyconfig/urls.py. - AC-00-03: no hay modelos de negocio.
Verificación
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:
- 📋 Criterios de aceptación → Criterios de aceptación
- ✅ GATE → GATE
- 🔎 Verificación → Verificación
- 🧠 Autoevaluación → Evaluación del cuaderno
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