miércoles, 4 de diciembre de 2019

CRUD JUGADORES SQL POSTGRESQL


DESCARGAR POSTGRE SQL DATABASE

Super usuario= postgres
password  = elliotroot
puerto =5432





INSTALAMOS PSYCOPG






ABRIMOS EL VISOR GRAFICO



Crear proyecto jugadores

y dentro de la carpeta jugadores crear la carpeta apps









y dentro de esa carpeta apps crear la aplicacion crud jugadores




crear la base de datos jugadores





lo statico las ssc y las js, en la carpeta static, estatico en templates las plantillas



 -Hacer archivo   __init__.py  en la carpeta apps-


 ir a settings y colocar lo siguiente .....


Configurar la base de datos en settings


Agregar linea Static



Realizamos las migraciones...




 Crear Modelos: (Deportes y Jugadores)
ir al archivo Models

Class mODEL  que hereda de la clase models:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Deporte(models.Model):
    id = models.IntegerField(primary_key=True)
    nombre = models.CharField(max_length=20)

class Jugador(models.Model):
    id = models.IntegerField(primary_key=True)
    nombres = models.CharField(max_length=50)
    apellidos = models.CharField(max_length=50)
    fecha_nacimiento = models.DateField()
    email = models.EmailField()
    deporte = models.ForeignKey(Deporte, null=True,blank=True, on_delete= models.CASCADE)

Visualizar tablas y verificar que se creo el modelo


Registrar modelos
 
Entrar como modo administrador y revisar el sitio 

MODIFICAMOS PARA QUE NO OCURRA REGISTROS EN MODO OBJECT

class Deporte(models.Model):
    id = models.IntegerField(primary_key=True)
    nombre = models.CharField(max_length=20)

    def __str__(self):
        return "{0} -> {1}".format(self.id,self.nombre)
        #return '{}'.format(self.nombre)
        

class Jugador(models.Model):
    id = models.IntegerField(primary_key=True)
    nombres = models.CharField(max_length=50)
    apellidos = models.CharField(max_length=50)
    fecha_nacimiento = models.DateField()
    email = models.EmailField()
    deporte = models.ForeignKey(Deporte, null=True,blank=True, on_delete= models.CASCADE)

    def NombreCompleto(self):
        cadena = "{0} {1} {2}"
        return cadena.format(self.id, self.nombres , self.apellidos)

    def __str__(self):
        return self.NombreCompleto()





Crear carpetas y meter archivos html predeterminados antes creados



Una vez acabado con ello haremos lo siguiente, iremos a https://bootswatch.com/ y seleccionaremos un tema para utilizar en nuestro sitio web.


Esta misma URL la pegaremos en el archivo base:






Ahora nos dirigiremos a la pagina principal de https://getbootstrap.com/ e iremos a la sección de Js, Popper and Jquery, en ese apartado vendrán código para enlazar nuestro proyecto con los estilos predefinidos de boostrap.



Esas mismas lineas de código serán agregadas en el mismo archivo base.html en la sección de la etiqueta head. Al final la parte inicial de nuestro archivo base debe verse similar a esto:





crear el formulario .py




Una vez hecho esto configuremos nuestras vistas:





Con el código anterior hemos configurado una primera vista para crear nuevos registros. Ahora iniciemos configurando las urls, para ello dirijámonos al archivo urls de nuestro proyecto y escribamos el siguiente código:




una vez configuradas las urls del proyecto configuremos las urls de la aplicación, para ello como primera cosa a realizar, debemos crear un archivo llamado urls.py dentro de la carpeta de nuestra aplicación:




AL final del codigo deberia quedar asi>







Como podemos observar, las lineas de configuración de las urls de las plantillas que hemos agregado contienen un conjunto de parámetros enmascarados con símbolos un tanto raros y fuera de lugar, esto es debido a que por una parte estamos haciendo uso de expresiones regulares para identificar y colocar la url de forma auto-generada y por otro parte estamos pasando siempre un parámetro como variable auxiliar a otra plantilla, de manera que pueda ser usada para gestionar consultas al modelo html.







No hay comentarios:

Publicar un comentario