Inicio > Desarrollo Web > Cómo crear un Sistema de Blogs desde cero con Django

Cómo crear un Sistema de Blogs desde cero con Django

Diego Cortés
Diego Cortés
September 20, 2024
Cómo crear un Sistema de Blogs desde cero con Django

Django es un potente framework web de Python que permite desarrollar aplicaciones web de manera rápida y eficiente. En este artículo, te guiaré a través del proceso de creación de un sistema de blogs desde cero utilizando Django, cubriendo desde la instalación hasta la implementación final. Al finalizar, tendrás un blog funcional que podrás modificar según tus necesidades.

Requisitos Previos

Antes de comenzar, asegúrate de tener:

  • Python instalado (preferiblemente la versión 3.6 o superior)
  • Pip para manejar paquetes de Python
  • Conocimientos básicos en Python y desarrollo web

Instalación de Django

Paso 1: Crear un entorno virtual

Lo primero que vamos a hacer es crear un entorno virtual para nuestro proyecto. Esto nos ayudará a manejar las dependencias de manera aislada.

mkdir mi_blog
cd mi_blog
python -m venv venv
source venv/bin/activate  # En Windows usa 'venv\Scripts\activate'

Paso 2: Instalar Django

Con el entorno virtual activo, instala Django usando pip:

pip install django

Paso 3: Crear un nuevo proyecto

Crea un nuevo proyecto de Django con el siguiente comando:

django-admin startproject blog_project

Esto creará una carpeta llamada blog_project con la estructura básica de un proyecto de Django.

Creación de la Aplicación del Blog

Paso 1: Crear una nueva aplicación

Navega a tu carpeta de proyecto y crea una nueva aplicación llamada blog:

cd blog_project
django-admin startapp blog

Paso 2: Registrar la aplicación

Abre el archivo settings.py que se encuentra en blog_project/blog_project/ y añade 'blog' a la lista de INSTALLED_APPS:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

Modelos de Django

Los modelos son una parte esencial de cualquier aplicación Django. En nuestro caso, crearemos un modelo simple para las entradas del blog.

Paso 1: Definir el modelo

Abre el archivo models.py en la carpeta blog y define el siguiente modelo:

from django.db import models

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

    def __str__(self):
        return self.title

Paso 2: Migrar los cambios

Después de definir el modelo, debemos crear y aplicar la migración para actualizar la base de datos.

python manage.py makemigrations
python manage.py migrate

Admin de Django

Paso 1: Registrar el modelo en el admin

Para poder gestionar las entradas del blog desde el panel de administración, registra el modelo Post en el archivo admin.py de la aplicación blog:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

Paso 2: Crear un superusuario

Para acceder al panel de administración, necesitas crear un superusuario:

python manage.py createsuperuser

Sigue las instrucciones en pantalla para hacerlo.

Paso 3: Iniciar el servidor

Ahora es momento de correr nuestro servidor:

python manage.py runserver

Visita http://127.0.0.1:8000/admin en tu navegador e ingresa con las credenciales de superusuario que creaste. Ahora deberías ver la opción para gestionar las publicaciones del blog.

Crear Vistas y Templates

Paso 1: Crear una vista para listar los posts

Crea una vista en views.py que muestre todas las publicaciones:

from django.shortcuts import render
from .models import Post

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

Paso 2: Configurar URLs

Crea un archivo urls.py en la carpeta blog y configura las URLs:

from django.urls import path
from .views import post_list

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

Luego, añade esta URL a las URL del proyecto abriendo urls.py en la carpeta blog_project:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

Paso 3: Crear el template

Crea una carpeta llamada templates en la carpeta blog y dentro de ella otra carpeta llamada blog. Luego, crea un archivo llamado post_list.html en blog/templates/blog/:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog</title>
</head>
<body>
    <h1>Blog</h1>
    <ul>
        {% for post in posts %}
            <li>
                <h2>{{ post.title }}</h2>
                <p>{{ post.content }}</p>
                <p><em>Publicado el {{ post.created_at }}</em></p>
            </li>
        {% endfor %}
    </ul>
</body>
</html>

Ejecutar el proyecto

Después de completar todos los pasos anteriores, ahora puedes ejecutar el proyecto:

python manage.py runserver

Visita http://127.0.0.1:8000/ en tu navegador y deberías ver tu blog en funcionamiento.

Conclusión

Crear un sistema de blogs con Django es un proceso gratificante y enriquecedor que te permite entender los conceptos básicos del desarrollo web. En este artículo, cubrimos cómo configurar un entorno Django, crear un modelo para las entradas del blog, utilizar el panel de administración y mostrar las publicaciones en una plantilla.

Con esta base, puedes expandir tu blog añadiendo características como comentarios, etiquetas, categorías y autenticación de usuarios. ¡Las posibilidades son infinitas!

Recursos Adicionales

Sigue explorando y happy coding!

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 25.43 ms