creación sitio web django python

Proceso de creación de un Sitio Web con Django y Python

Introducción

Django es un framework web de alto nivel que promueve el desarrollo rápido y limpio de aplicaciones web con Python. Con una arquitectura robusta y herramientas integradas, Django se ha convertido en una opción preferida para desarrolladores que buscan crear sitios web escalables, seguros y mantenibles. En este artículo, exploraremos paso a paso cómo crear un sitio web completo utilizando Django y Python, desde la configuración inicial hasta la implementación de funcionalidades operativas clave.

creación sitio web django python

¿Por Qué Django?

Antes de sumergirnos en los detalles técnicos, vale la pena mencionar algunas razones por las que Django es una excelente opción para desarrollar sitios web:

  • Desarrollo Rápido: Django incluye herramientas y características que permiten construir aplicaciones rápidamente.
  • Seguro: Protege automáticamente contra ataques comunes como SQL injection, cross-site scripting y clickjacking.
  • Escalable: Django es altamente escalable, lo que lo hace ideal para proyectos de todo tamaño.
  • Comunidad Activa: Cuenta con una gran comunidad y una extensa documentación, facilitando el aprendizaje y resolución de problemas.
creación sitio web django python

Prerrequisitos

Antes de comenzar, asegúrate de tener instalado Python y Django en tu entorno de desarrollo. Aquí te mostramos cómo instalar ambos:

Instalación de Python

Django requiere Python. Para instalarlo:

En sistemas Debian/Ubuntu:

sudo apt update
sudo apt install python3 python3-pip

En Fedora:

sudo dnf install python3 python3-pip

Instalación de Django

Una vez que tengas Python, puedes instalar Django usando pip:

pip install django

1. Configuración del Proyecto Django

Una vez instalado Django, el primer paso es crear un proyecto. El proyecto es el contenedor principal que agrupa las aplicaciones y configuraciones necesarias para el sitio web.

Crear un Proyecto

Usamos el comando django-admin para crear el proyecto inicial:

django-admin startproject nombre_proyecto
cd nombre_proyecto

Esto generará una estructura de archivos similar a la siguiente:

nombre_proyecto/
    manage.py
    nombre_proyecto/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • manage.py: Herramienta de línea de comandos para interactuar con el proyecto.
  • settings.py: Archivo de configuración del proyecto.
  • urls.py: Gestiona las rutas del sitio.
  • wsgi.py/asgi.py: Puntos de entrada del servidor web.

2. Configuración Inicial

Configurar la Base de Datos

Django usa SQLite como base de datos predeterminada, lo cual es ideal para pequeños proyectos. Sin embargo, puedes cambiarla a PostgreSQL, MySQL o cualquier otro sistema de bases de datos. Para este artículo, utilizaremos SQLite para simplificar el proceso.

En el archivo settings.py, puedes configurar los detalles de la base de datos:

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

Migrar la Base de Datos

Django utiliza un sistema de migraciones para gestionar los cambios en la base de datos. Para aplicar las migraciones iniciales:

python manage.py migrate

Ejecutar el Servidor de Desarrollo

Para comprobar que todo está funcionando correctamente, puedes ejecutar el servidor de desarrollo con:

python manage.py runserver

Al abrir el navegador y acceder a http://127.0.0.1:8000/, deberías ver la página de bienvenida de Django.

3. Crear una Aplicación en Django

Un sitio web en Django se organiza en aplicaciones. Cada aplicación es una funcionalidad autónoma que puede ser reutilizada en otros proyectos.

Crear una Aplicación

Para crear una aplicación, usamos el comando startapp:

python manage.py startapp nombre_app

Esto creará una nueva carpeta dentro del proyecto con los siguientes archivos:

nombre_app/
    migrations/
    __init__.py
    admin.py
    apps.py
    models.py
    views.py
    tests.py
  • models.py: Define los modelos de datos.
  • views.py: Contiene la lógica de las vistas.
  • admin.py: Configura el panel de administración de Django.

Registrar la Aplicación

Para que Django reconozca la nueva aplicación, debes añadirla en INSTALLED_APPS dentro de settings.py:

INSTALLED_APPS = [
    # Otras aplicaciones
    'nombre_app',
]

4. Crear el Modelo de Datos

Los modelos en Django definen la estructura de los datos que tu sitio web manejará. Por ejemplo, si estás construyendo un blog, un modelo de Post podría verse así:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Después de definir un modelo, debes crear y aplicar las migraciones para actualizar la base de datos:

python manage.py makemigrations
python manage.py migrate

5. Crear Vistas y Rutas

Las vistas en Django determinan qué se mostrará al usuario cuando accedan a una URL específica. Una vista básica puede verse así:

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'post_list.html', {'posts': posts})

A continuación, define una ruta en urls.py para que esta vista esté disponible:

from django.urls import path
from . import views

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

6. Crear Plantillas HTML

Django usa un motor de plantillas para renderizar HTML dinámico. En la carpeta de tu aplicación, crea una carpeta llamada templates, y dentro de ella un archivo post_list.html:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Lista de Publicaciones</h1>
    <ul>
        {% for post in posts %}
            <li>{{ post.title }} - {{ post.published_date }}</li>
        {% endfor %}
    </ul>
</body>
</html>

7. Panel de Administración

Django incluye un poderoso panel de administración que te permite gestionar los datos del sitio web. Para utilizarlo, debes registrar los modelos en admin.py:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

Luego, puedes acceder al panel en http://127.0.0.1:8000/admin/. No olvides crear un usuario administrador con el siguiente comando:

python manage.py createsuperuser

8. Funciones Básicas Operativas

Autenticación de Usuarios

Django incluye un sistema de autenticación listo para usar. Puedes habilitarlo agregando vistas de inicio y cierre de sesión. En urls.py:

from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

Formularios

Los formularios en Django son esenciales para interactuar con el usuario. Puedes crear formularios tanto manualmente como usando el sistema de formularios de Django. Ejemplo de un formulario básico de creación de un post:

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'content'

Mensajes de Notificación

Django también ofrece un sistema de mensajes para mostrar notificaciones temporales a los usuarios:

from django.contrib import messages

def post_create(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Post creado con éxito')
creación sitio web django python

Django y Python proporcionan una plataforma flexible y potente para el desarrollo de sitios web. Con su estructura bien organizada, características integradas y la facilidad de uso de Python, puedes crear aplicaciones web que sean robustas, seguras y escalables. Esta guía ha cubierto los aspectos esenciales para configurar un sitio web funcional con Django, pero hay muchos otros temas avanzados, como la optimización de rendimiento, el manejo de archivos estáticos y el despliegue en servidores de producción, que puedes explorar a medida que avances en tu proyecto.

1 comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *