Está en la página 1de 7

PROYECTO WEB PARA

ADMINISTRAR UNA UNIVERSIDAD

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.

Para ver el tutorial en YouTube hacer clic en este enlace

¡IMPORTANTE! Para realizar este proyecto, debemos tener instalados Python, el framework web
Django y un IDLE (editor).

PREPARACIÓN DEL PROYECTO

 Python

Lo descargamos desde https://www.python.org/ Para ver la versión de Python que tenemos


instalada escribimos en el CMD C:\>python –version

 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()

 IDLES (entorno de desarrollo integrado)

Hay varios. Nosotros vamos a utilizar Sublime Text.


https://www.jetbrains.com/es-es/pycharm/
https://www.sublimetext.com/
PUESTA EN MARCHA DEL PROYECTO
Nuestro proyecto se va a llamar MiUniversidad. Para crear la carpeta del proyecto y sus librerías,
escribimos (situados en la unidad C:\):

C:\>django-admin startproject MiUniversidad

Debe verse así

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.

'NAME': 'MiUniversidad.db', Al hacer esto indicamos el nombre de nuestra base de datos.

LANGUAGE_CODE = 'es-pe' <- Modificamos el lenguaje,


TIME_ZONE = 'America/Lima' zona horaria.
USE_TZ = False
CREACIÓN DE LA APLICACIÓN ACADEMICA
Vamos a crear una aplicación que se va a llamar Académica, y lo vamos a hacer dentro de una
carpeta que se va a llamar Módulos. Para eso, en MiUniversidad creamos desde sublime Text
una carpeta Modulos (botón derecho-> New Folder…).

Situados en Modulos, creamos desde el CMD la app Académica tecleando:


C:\MiUniversidad\Modulos>django-admin startapp Académica

La estructura de carpetas y archivos, en este punto, debe ser igual a la de la imagen.

Así se verá la aplicación en el navegador web, una vez finalizada.

CREAR LOS MODELOS (BASES DE DATOS)


Nuestra BBDD tendrá 4 tablas, con sus respectivos campos, según se puede ver en la siguiente
imagen.
El código para crear las 4 tablas se escribe en models.py (Modulos -> Académica),

from django.db import models


# Create your models here.

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)

REGISTRAR LOS MODELOS


En el archivo admin.py (Modulos -> Académica) escribimos, según se indica el
siguiente código.

from django.contrib import admin


from Modulos.Academica.models import *

# Register your models here.


Y agregamos estas otras 4 líneas:
admin.site.register(Carrera)
admin.site.register(Estudiante)
admin.site.register(Curso)
admin.site.register(Matricula)

¡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'

REGISTRAR LA APLICACIÓN ACADÉMICA


Para registrar la app Académica, en el archivo settings.py (dentro de MiUniversidad) escribo
al final de donde dice INSTALLED_APPS = [

'Modulos.Academica'

HACER LAS MIGRACIONES


Por último, para hacer las migraciones, tecleo desde el CMD el siguiente comando
C:\MiUniversidad>python manage.py makemigrations

Migrations for 'Academica':


Modulos\Academica\migrations\0001_initial.py
- Create model Carrera
- Create model Curso
- Create model Estudiante
- Create model Matricula

MIGRAR LA BASE DE DATOS


Para migrar los datos (con esto generamos las BBDD), y situados en MiUniversidad, tecleamos
el siguiente comando desde el CMD C:\MiUniversidad>python manage.py migrate
CREAR ADMINISTRADOR (SUPERUSUARIO)
Para finalizar creamos un usuario. (es necesario tener usuario y contraseña para acceder a la
aplicación).

Escribimos desde el CMD C:\MiUniversidad>python manage.py createsuperuser

Nombre de usuario (leave blank to use 'ematpinformatica'):


Dirección de correo electrónico:
Password:
Password (again):
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

Este apartado final es para formatear el método


__str__ para que muestre bien los datos, y no
como objetos, no es obligatorio pero la
información se ve mejor así.

En models.py agrego al final de cada clase el siguiente código:

 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:

C:\MiUniversidad>python manage.py runserver

Para acceder a la página escribo en la barra de navegación de cualquier navegador…


127.0.0.1:8000/admin/

Para salir del servidor presiono Crtl+C

También podría gustarte