Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO N° 04
RELACIÓN DE MODELOS EN DJANGO.
Alumno Nota
MAMANI.MAMANI. Renzo. Junior
Grupo
Fecha de Entrega
Docente Renato Usnayo Cáceres
OBJETIVOS:
Configurar tablas relacionadas en Django.
SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del hardware, conexiones
eléctricas o de red; así como la ingestión de alimentos o bebidas.
FUNDAMENTO TEÓRICO:
Revisar el texto guía que está en el campus Virtual.
NORMAS EMPLEADAS:
No aplica
RECURSOS:
En este laboratorio cada alumno trabajará con un equipo con Windows 10.
Aprender es como remar contra corriente: en cuanto se deja, se retrocede (Edward Benjamin
Britten)
PROCEDIMIENTO:
Paso 1: Crear un entorno virtual
Antes de comenzar un nuevo proyecto de Django, crea un entorno virtual. Puedes utilizar la herramienta
venv que viene con Python. Abre tu terminal y ejecuta los siguientes comandos:
myenv\Scripts\activate
Después de activar el entorno virtual, notarás que el prompt de la terminal cambia para indicar que
estás trabajando dentro del entorno virtual.
Dentro del entorno virtual, puedes instalar Django y otras dependencias específicas para tu proyecto.
Ejecuta el siguiente comando para instalar Django:
Cuando hayas terminado de trabajar en tu proyecto, puedes desactivar el entorno virtual con el
siguiente comando:
deactivate
Dentro de tu proyecto, crea una nueva aplicación llamada "blog" (o cualquier otro nombre que
desees):
class Autor(models.Model):
nombre = models.CharField(max_length=100)
correo = models.EmailField()
def __str__(self):
return self.nombre
class Entrada(models.Model):
titulo = models.CharField(max_length=200)
contenido = models.TextField()
autor = models.ForeignKey(Autor, on_delete=models.CASCADE)
fecha_publicacion = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.titulo
En este ejemplo, hemos creado dos modelos: "Autor" y "Entrada". La "Entrada" tiene una clave
externa (ForeignKey) que establece una relación con el modelo "Autor".
admin.site.register(Autor)
admin.site.register(Entrada)
Crear un superusuario
Para acceder a la interfaz de administración, crea un superusuario con el siguiente comando:
Sigue las instrucciones para ingresar un nombre de usuario, correo electrónico y contraseña.
Agregar datos
Dentro de la interfaz de administración, puedes agregar autores y entradas. Asegúrate de que
las entradas estén relacionadas con un autor existente.
¿Te aparece la aplicación blog? Menciona por que no aparece la aplicación blog
Quizás por que aun no esta registrada en algunos archivos dentro de la aplicación como en
settings.py
INSTALLED_APPS = [
# ...
'blog',
# ...
]
Agregamos datos
Define una vista que renderice las entradas del blog. Puedes utilizar vistas basadas en funciones
o vistas basadas en clases. Ejemplo de una vista basada en funciones:
def lista_entradas(request):
entradas = Entrada.objects.all()
return render(request, 'blog/lista_entradas.html', {'entradas': entradas})
En este ejemplo, estamos recuperando todas las entradas de la base de datos utilizando
Entrada.objects.all() y pasándolas a la plantilla llamada "lista_entradas.html".
Ahora, crea una plantilla HTML en la carpeta templates/blog dentro de la aplicación "blog" (si
esta carpeta no existe, créala). Llámala "lista_entradas.html". Puedes personalizar esta plantilla
según tus necesidades.
html
Copy code
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Lista de Entradas</title>
</head>
<body>
<h1>Lista de Entradas</h1>
<ul>
{% for entrada in entradas %}
<li>
<h2>{{ entrada.titulo }}</h2>
<p>{{ entrada.contenido }}</p>
<p>Autor: {{ entrada.autor }}</p>
<p>Fecha de Publicación: {{ entrada.fecha_publicacion }}</p>
</li>
{% endfor %}
</ul>
</body>
</html>
Esta plantilla utiliza la sintaxis de plantilla de Django ({% ... %}) para mostrar los detalles de las
entradas.
Configura una URL para esta vista en el archivo urls.py de la aplicación "blog". Abre urls.py y
agrega el siguiente código:
urlpatterns = [
path('entradas/', views.lista_entradas, name='lista_entradas'),
]
Esto configura una URL llamada "/entradas/" que mapea a la vista lista_entradas.
Asegúrate de que las URL de la aplicación "blog" se incluyan en las URL del proyecto principal
(proyecto_relacion_modelos/urls.py). Puedes hacerlo agregando una entrada en el archivo
urls.py del proyecto principal:
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')), # Agrega esta línea
]
TAREA
Crear una página que muestre todas las entradas de un autor específico cuando haces clic en su nombre
en la página de inicio. Para hacer esto, deberás agregar una vista y una URL adicional que filtre las
entradas por autor.
OBSERVACIONES: (Las observaciones son las notas aclaratorias, objeciones y problemas que se
pudo presentar en el desarrollo del laboratorio)
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
CONCLUSIONES: (Las conclusiones son una opinión sobre tu trabajo, explicar cómo resolviste las
dudas o problemas presentados en el laboratorio. Además de aportar una opinión critica de lo
realizado)
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________