first commit
This commit is contained in:
+207
@@ -0,0 +1,207 @@
|
||||
AYUDA DJANGO
|
||||
|
||||
\============
|
||||
|
||||
Proyecto Django: Blog Simple
|
||||
|
||||
Este proyecto creará un blog básico donde los usuarios podrán ver una lista de publicaciones y acceder a los detalles de cada una.
|
||||
|
||||
Paso 1: Instalar Django
|
||||
|
||||
Si no tienes Django instalado, ejecuta:
|
||||
|
||||
pip install django
|
||||
|
||||
Paso 2: Crear un Proyecto Django
|
||||
|
||||
django-admin startproject blog\_project
|
||||
|
||||
cd blog\_project
|
||||
|
||||
Paso 3: Crear la Aplicación del Blog
|
||||
|
||||
python manage.py startapp blog
|
||||
|
||||
Registre la aplicación en blog\_project/settings.pydentro de INSTALLED\_APPS:
|
||||
|
||||
INSTALLED\_APPS = [
|
||||
|
||||
'django.contrib.admin',
|
||||
|
||||
'django.contrib.auth',
|
||||
|
||||
'django.contrib.contenttypes',
|
||||
|
||||
'django.contrib.sessions',
|
||||
|
||||
'django.contrib.messages',
|
||||
|
||||
'django.contrib.staticfiles',
|
||||
|
||||
'blog', # Agregamos nuestra aplicación
|
||||
|
||||
]
|
||||
|
||||
Paso 4: Definir el modelo de publicación
|
||||
|
||||
Edita blog/models.py:
|
||||
|
||||
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)
|
||||
|
||||
def \_\_str\_\_(self):
|
||||
|
||||
return self.title
|
||||
|
||||
Aplica las migraciones para crear la tabla en la base de datos:
|
||||
|
||||
python manage.py makemigrations
|
||||
|
||||
python manage.py migrate
|
||||
|
||||
Paso 5: Registrar el Modelo en el Panel de Administración
|
||||
|
||||
Edita blog/admin.py:
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Post
|
||||
|
||||
admin.site.register(Post)
|
||||
|
||||
Crea un superusuario:
|
||||
|
||||
python manage.py createsuperuser
|
||||
|
||||
Corre el servidor y accede al panel de administración en http://127.0.0.1:8000/admin:
|
||||
|
||||
python manage.py runserver
|
||||
|
||||
Desde ahí, puedes agregar publicaciones manualmente.
|
||||
|
||||
Paso 6: Crear las Vistas y URL
|
||||
|
||||
Edita blog/views.py:
|
||||
|
||||
from django.shortcuts import render, get\_object\_or\_404
|
||||
|
||||
from .models import Post
|
||||
|
||||
def lista\_posts(request):
|
||||
|
||||
posts = Post.objects.all().order\_by('-created\_at')
|
||||
|
||||
return render(request, 'blog/lista\_posts.html', {'posts': posts})
|
||||
|
||||
def detalle\_post(request, post\_id):
|
||||
|
||||
post = get\_object\_or\_404(Post, id=post\_id)
|
||||
|
||||
return render(request, 'blog/detalle\_post.html', {'post': post})
|
||||
|
||||
Crea blog/urls.py:
|
||||
|
||||
from django.urls import path
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
path('', views.lista\_posts, name='lista\_posts'),
|
||||
|
||||
path('post/<int:post\_id>/', views.detalle\_post, name='detalle\_post'),
|
||||
|
||||
]
|
||||
|
||||
Registra las rutas en blog\_project/urls.py:
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
path('admin/', admin.site.urls),
|
||||
|
||||
path('', include('blog.urls')),
|
||||
|
||||
]
|
||||
|
||||
Paso 7: Crear las Plantillas HTML
|
||||
|
||||
Dentro de blog/templates/blog/, crea lista\_posts.html:
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<title>Blog</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Publicaciones</h1>
|
||||
|
||||
<ul>
|
||||
|
||||
{% for post in posts %}
|
||||
|
||||
<li>
|
||||
|
||||
<a href="{% url 'detalle\_post' post.id %}">{{ post.title }}</a>
|
||||
|
||||
({{ post.created\_at|date:"d M Y" }})
|
||||
|
||||
</li>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
Crea detalle\_post.html:
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<title>{{ post.title }}</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>{{ post.title }}</h1>
|
||||
|
||||
<p>{{ post.created\_at|date:"d M Y" }}</p>
|
||||
|
||||
<p>{{ post.content }}</p>
|
||||
|
||||
<a href="{% url 'lista\_posts' %}">Volver al blog</a>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
Paso 8: Ejecutar el Proyecto
|
||||
|
||||
Corre el servidor:
|
||||
|
||||
python manage.py runserver
|
||||
|
||||
Abre http://127.0.0.1:8000/y prueba la aplicación.
|
||||
Reference in New Issue
Block a user