En esta sección, exploraremos la estructura de un proyecto Django. Comprender cómo está organizado un proyecto Django es fundamental para trabajar de manera eficiente y mantener el código limpio y manejable.

Estructura Básica de un Proyecto Django

Cuando creas un nuevo proyecto Django, se genera una estructura de directorios y archivos que puede parecer un poco abrumadora al principio. Vamos a desglosar cada componente para entender su propósito.

Archivos y Directorios Principales

Al crear un nuevo proyecto Django con el comando django-admin startproject myproject, obtendrás una estructura similar a la siguiente:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Vamos a explicar cada uno de estos archivos y directorios:

  1. manage.py:

    • Este es un script de utilidad que te permite interactuar con tu proyecto Django desde la línea de comandos. Puedes usarlo para ejecutar el servidor de desarrollo, crear aplicaciones, realizar migraciones de bases de datos, entre otras tareas.
    # Ejemplo de uso de manage.py
    python manage.py runserver
    
  2. myproject/:

    • Este es el directorio del proyecto principal. Contiene los archivos de configuración y otros módulos necesarios para el funcionamiento del proyecto.
  3. myproject/init.py:

    • Este archivo vacío indica a Python que este directorio debe ser tratado como un paquete. No necesitas modificar este archivo.
  4. myproject/settings.py:

    • Este archivo contiene todas las configuraciones del proyecto, como la configuración de la base de datos, las aplicaciones instaladas, la configuración de middleware, entre otras.
    # Ejemplo de configuración de base de datos en settings.py
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / "db.sqlite3",
        }
    }
    
  5. myproject/urls.py:

    • Este archivo define las URL que serán manejadas por tu proyecto. Aquí es donde enrutas las solicitudes a las vistas correspondientes.
    # Ejemplo de configuración de URL en urls.py
    from django.contrib import admin
    from django.urls import path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    ]
    
  6. myproject/wsgi.py:

    • Este archivo es una entrada para los servidores web compatibles con WSGI para servir tu proyecto Django. Es útil para el despliegue en producción.
    # Ejemplo de configuración en wsgi.py
    import os
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
    application = get_wsgi_application()
    

Creando una Aplicación Django

En Django, una aplicación es una subunidad del proyecto que realiza una tarea específica. Puedes crear una aplicación usando el comando:

python manage.py startapp myapp

Esto generará una estructura de directorios y archivos para la aplicación:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/
        __init__.py

Vamos a desglosar estos archivos:

  1. myapp/init.py:

    • Indica que este directorio debe ser tratado como un paquete.
  2. myapp/admin.py:

    • Aquí puedes registrar tus modelos para que aparezcan en la interfaz de administración de Django.
    from django.contrib import admin
    from .models import MyModel
    
    admin.site.register(MyModel)
    
  3. myapp/apps.py:

    • Contiene la configuración de la aplicación. Django usa esta configuración para incluir la aplicación en el proyecto.
  4. myapp/models.py:

    • Aquí defines los modelos de datos de tu aplicación. Los modelos son clases que representan las tablas de la base de datos.
    from django.db import models
    
    class MyModel(models.Model):
        name = models.CharField(max_length=100)
    
  5. myapp/tests.py:

    • Aquí puedes escribir pruebas para tu aplicación.
    from django.test import TestCase
    
    class MyModelTest(TestCase):
        def test_example(self):
            self.assertEqual(1 + 1, 2)
    
  6. myapp/views.py:

    • Aquí defines las vistas de tu aplicación. Las vistas son funciones o clases que manejan las solicitudes y devuelven respuestas.
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, world!")
    
  7. myapp/migrations/:

    • Este directorio contiene archivos de migración que Django usa para aplicar cambios en la base de datos.
    # Ejemplo de archivo de migración
    from django.db import migrations, models
    
    class Migration(migrations.Migration):
        initial = True
    
        dependencies = []
    
        operations = [
            migrations.CreateModel(
                name='MyModel',
                fields=[
                    ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                    ('name', models.CharField(max_length=100)),
                ],
            ),
        ]
    

Resumen

En esta sección, hemos desglosado la estructura básica de un proyecto Django y explicado el propósito de cada archivo y directorio. Ahora deberías tener una comprensión clara de cómo está organizado un proyecto Django y cómo crear y estructurar aplicaciones dentro de tu proyecto.

En la siguiente sección, profundizaremos en los conceptos básicos de Django, comenzando con las aplicaciones Django y la estructura del proyecto.

© Copyright 2024. Todos los derechos reservados