Django es un framework web de alto nivel para Python que permite el desarrollo rápido y limpio de aplicaciones web. Fue diseñado para ayudar a los desarrolladores a crear aplicaciones web complejas de manera rápida y con menos código. Django sigue el principio de "No te repitas" (DRY, por sus siglas en inglés) y fomenta el uso de patrones de diseño como el Modelo-Vista-Controlador (MVC), aunque en Django se conoce como Modelo-Vista-Plantilla (MVT).

Contenido

  1. ¿Qué es Django?
  2. Instalación de Django
  3. Creación de un Proyecto Django
  4. Estructura de un Proyecto Django
  5. Creación de una Aplicación en Django
  6. Configuración de la Base de Datos
  7. Migraciones en Django
  8. Creación de Vistas y Plantillas
  9. Enrutamiento de URLs
  10. Administración de Django

  1. ¿Qué es Django?

Django es un framework web de alto nivel que permite el desarrollo rápido de aplicaciones web seguras y mantenibles. Algunas de sus características clave incluyen:

  • ORM (Object-Relational Mapping): Permite interactuar con bases de datos usando objetos Python en lugar de SQL.
  • Sistema de Plantillas: Facilita la creación de interfaces de usuario dinámicas.
  • Sistema de Administración: Proporciona una interfaz de administración lista para usar.
  • Autenticación y Autorización: Maneja la autenticación de usuarios y permisos.
  • Internacionalización: Soporte para múltiples idiomas y localizaciones.

  1. Instalación de Django

Para instalar Django, necesitas tener Python y pip (el gestor de paquetes de Python) instalados en tu sistema. Puedes instalar Django utilizando pip con el siguiente comando:

pip install django

Para verificar que Django se ha instalado correctamente, puedes ejecutar:

django-admin --version

  1. Creación de un Proyecto Django

Un proyecto Django es una colección de configuraciones y aplicaciones para una aplicación web específica. Para crear un nuevo proyecto Django, utiliza el comando django-admin startproject seguido del nombre del proyecto:

django-admin startproject myproject

Esto creará una estructura de directorios como la siguiente:

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

  1. Estructura de un Proyecto Django

  • manage.py: Un script que ayuda a gestionar el proyecto.
  • myproject/: El paquete del proyecto.
    • init.py: Un archivo vacío que indica que este directorio debe ser tratado como un paquete Python.
    • settings.py: Configuraciones del proyecto.
    • urls.py: Declaraciones de URL para el proyecto.
    • wsgi.py: Una entrada para servidores web compatibles con WSGI.

  1. Creación de una Aplicación en Django

En Django, una aplicación es un componente web que realiza una tarea específica. Puedes crear una nueva aplicación dentro de tu proyecto usando el comando startapp:

python manage.py startapp myapp

Esto creará una estructura de directorios como la siguiente:

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

  1. Configuración de la Base de Datos

Django soporta varias bases de datos, incluyendo SQLite, PostgreSQL, MySQL y Oracle. La configuración de la base de datos se realiza en el archivo settings.py. Por defecto, Django usa SQLite:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / "db.sqlite3",
    }
}

  1. Migraciones en Django

Las migraciones son una forma de aplicar cambios en el esquema de la base de datos. Para crear y aplicar migraciones, usa los siguientes comandos:

python manage.py makemigrations
python manage.py migrate

  1. Creación de Vistas y Plantillas

Las vistas en Django son responsables de procesar las solicitudes y devolver respuestas. Puedes definir una vista en views.py:

from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello, Django!")

Para usar plantillas, primero crea un directorio templates dentro de tu aplicación y un archivo HTML dentro de él. Luego, configura settings.py para incluir la ruta de las plantillas:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

  1. Enrutamiento de URLs

El enrutamiento de URLs se define en urls.py. Puedes mapear URLs a vistas específicas:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

  1. Administración de Django

Django incluye una interfaz de administración que puedes habilitar registrando tus modelos en admin.py:

from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel)

Para acceder a la interfaz de administración, primero crea un superusuario:

python manage.py createsuperuser

Luego, inicia el servidor de desarrollo y accede a /admin en tu navegador.

Conclusión

En esta introducción a Django, hemos cubierto los conceptos básicos y la estructura de un proyecto Django, así como la creación de aplicaciones, configuración de bases de datos, migraciones, vistas, plantillas, enrutamiento de URLs y la administración de Django. Con estos fundamentos, estás listo para comenzar a desarrollar aplicaciones web robustas y escalables con Django.

En el siguiente tema, profundizaremos en la construcción de aplicaciones web completas utilizando Django, explorando características avanzadas y mejores prácticas.

Curso de Programación en Python

Módulo 1: Introducción a Python

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados