Saltar a contenido

Generar un nuevo proyecto

Con el entorno virtual previamente creado y activado, y Django instalado, podemos utilizar el comando django-admin startproject para generar la estructura inicial de un proyecto llamado mysite:

(.venv) django-admin startproject mysite .
Estructura del proyecto generado
 myproject
├──  mysite
│   ├──  __init__.py#(1)!
│   ├──  asgi.py#(2)!
│   ├──  settings.py#(3)!
│   ├──  urls.py#(4)!
│   └──  wsgi.py#(5)!
└──  manage.py#(6)!
  1. Identifica el directorio como un paquete Python.
  2. Permite la integración con servidores ASGI.
  3. Contiene la configuración del proyecto.
  4. Define las rutas principales.
  5. Permite la integración con servidores WSGI.
  6. Ejecuta comandos administrativos del proyecto.
  • Estructura recomendada


    Al utilizar el punto (.) al final del comando, los archivos se crean en el directorio actual, evitamos duplicar directorios y facilita la gestión de rutas.

Estructura recomendada

(.venv) django-admin startproject mysite
Estructura del proyecto generado
 myproject
└──  mysite
    ├──  mysite
    │   ├──  __init__.py#(1)!
    │   ├──  asgi.py#(2)!
    │   ├──  settings.py#(3)!
    │   ├──  urls.py#(4)!
    │   └──  wsgi.py#(5)!
    └──  manage.py#(6)!
  1. Identifica el directorio como un paquete Python.
  2. Permite la integración con servidores ASGI.
  3. Contiene la configuración del proyecto.
  4. Define las rutas principales.
  5. Permite la integración con servidores WSGI.
  6. Ejecuta comandos administrativos del proyecto.
  • Estructura contraproducente


    Esta forma duplica carpetas e incómoda el flujo de trabajo. Nos obliga a entrar a una subcarpeta (cd mysite) solo para usar el manage.py, además de enredar el manejo de rutas.

Carpeta duplicada