Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntes Del Proyecto Web
Apuntes Del Proyecto Web
Curso introductorio al framework web Django para aplicaciones web usando el lenguaje de
programación Python usando el patrón de arquitectura MTV: model - template - view o modelo -
plantilla - vista, abarcando la creación del proyecto, la creación y administración de modelos, el
manejo de vistas, implementación de plantillas y envío de correos usando el framework Django.
¡IMPORTANTE! Para realizar este proyecto, debemos tener instalados Python, el framework web
Django y un IDLE (editor).
Python
Django
De no tenerlo para descargarlo, tecleamos C:\>pip install Django (se descarga desde su librería
con este comando). Para ver la versión de Django tecleamos en el CMD
C:\>Python
>>> import django
>>> django.VERSION
Para salir de >>> escribimos exit()
Abrimos el proyecto MiUniversidad con Sublime Text. File-> Open Folder, y vemos el proyecto,
sus carpetas y los archivos que se generan.
EMPEZAMOS…
Modificamos algunos parámetros iniciales en settings.py que se encuentra en la carpeta
MiUniversidad->MiUniversidad.
class Carrera(models.Model):
codigo = models.CharField(max_length=3, primary_key=True)
nombre = models.CharField(max_length=50)
duracion = models.PositiveSmallIntegerField(default=5)
class Estudiante(models.Model):
dni = models.CharField(max_length=8, primary_key=True)
apellidoPaterno = models.CharField(max_length=35)
apellidoMaterno = models.CharField(max_length=35)
nombres = models.CharField(max_length=35)
fechaNacimiento = models.DateField()
sexos = [
('F', 'Femenino'),
('M', 'Masculino')
]
sexo = models.CharField(max_length=1, choices=sexos, default='F')
carrera = models.ForeignKey(Carrera, null=False, blank=False, on_delete=models.CASCADE)
vigencia = models.BooleanField(default=True)
def nombreCompleto(self):
txt = "{0} {1} {2}"
return txt.format(self.apellidoPaterno, self.apellidoMaterno, self.nombres)
class Curso(models.Model):
codigo = models.CharField(max_length=6, primary_key=True)
nombre = models.CharField(max_length=30)
creditos = models.PositiveSmallIntegerField()
docente = models.CharField(max_length=100)
class Matricula(models.Model):
id = models.AutoField(primary_key=True)
estudiante = models.ForeignKey(Estudiante, null=False, blank=False, on_delete=models.CASCADE)
curso = models.ForeignKey(Curso, null=False, blank=False, on_delete=models.CASCADE)
fechaMatricula = models.DateTimeField(auto_now_add=True)
¡ATENCIÓN! No se aclara en el curso, pero en apps.py hay que hacer una modificación en
el código. Buscamos donde dice name, y agregamos la palabra Modulos. Quedaría así:
name = 'Modulos.Academica'
'Modulos.Academica'
para carrera:
def __str__(self):
txt = "{0} (Duración: {1} años(s))"
return txt.format(self.nombre, self.duracion)
para estudiante:
def __str__(self):
txt = "{0} / Carrera: {1} / {2}"
if self.vigencia:
estadoEstudiante = "VIGENTE"
else:
estadoEstudiante = "DE BAJA"
return txt.format(self.nombreCompleto(), self.carrera, estadoEstudiante)
para curso:
def __str__(self):
txt = "{0} ({1}) / Docente: {2}"
return txt.format(self.nombre, self.codigo, self.docente)
para Matricula:
def __str__(self):
txt = "{0} matriculad{1} en el curso {2} / Fecha: {3}"
if self.estudiante.sexo == "F":
letraSexo = "a"
else:
letraSexo = "o"
fecMat = self.fechaMatricula.strftime("%A %d/%m/%Y %H:%M:%S")
return txt.format(self.estudiante.nombreCompleto(), letraSexo, self.curso, fecMat)
CORRER EL SERVIDOR
Por último, una vez finalizado todo lo anterior (si bien se puede hacer desde antes), para correr
el servidor tecleo: