TUTORIAL INTEGRACIÓN PYTHON -POSTRESQL
CONFIGURACIÓN DE ELEMENTOS NECESARIOS EN POSTGRESQL
Abrimos pgAdmin y creamos abrimos la terminal como lo indica la imagen para
crear la query y crear la base de datos.
Insertamos la query en la terminal y damos clic en el icono indicado para que se
ejecute. Podemos ver en la parte inferior que la base de datos se creó
correctamente.
Refrescamos la conexión en la parte izquierda de la interfaz y luego damos clic
derecho encima de la bd_colegio.Luego damos clic en “CREATE Script” para
abrir la terminal donde escribimos las querys.
Insertamos la query en la terminal para crear la tabla estudiante y damos clic en
el icono indicado para que se ejecute. Podemos ver en la parte inferior que la
tabla estudiantes se creó correctamente.
ESTRUCTURA DEL PROYECTO
Static: maneja el archivo css ,imagenes etc.
Templates: archivos html.
Index.html: contiene el formulario de registro del.
App.py: el main de la aplicación que contiene el código necesario para iniciar la
aplicación.
Config.py: archivo encargado de la conexión a la base de datos de postgresql.
Models.py: modelado de las tablas de la base de datos.
Requirements.txt : lista de librerías necesarias para el proyecto.
INSTALACIÓN DE LIBRERÍAS
Seguimos los pasos indicados de la imagen para abrir una terminal en visual
donde ejecutaremos los comandos para instalar las librerías.
Ejecutamos en la terminal el comando indicado en la imagen para instalar
flask.Flask sirve como servidor web integrado para manejar peticiones HTTP,
ruteo de URL a funciones, renderizado de plantillas HTM, etc.
Ejecutamos en la terminal el comando indicado en la imagen para instalar
sqlalchemy.Es un ORM que simplifica el trabajo con bases de datos, mejorando
la productividad y reduciendo la necesidad de escribir SQL manual
Ejecutamos en la terminal el comando indicado en la imagen para instalar
sqlalchemy.psycopg2-binary es un paquete que te permite interactuar con
PostgreSQL desde Python, facilitando la conexión y ejecución de consultas SQL.
Ejecutamos en la terminal el comando indicado en la imagen para instalar
sqlalchemy.Es una extensión de flask que facilita el uso de SQLAlchemy.
Script config.py
import os
class Config:
# Configuración para la conexión a la base de datos
SQLALCHEMY_DATABASE_URI =
'postgresql://postgres:12345@localhost/bd_colegio'
SQLALCHEMY_TRACK_MODIFICATIONS = False # Desactivar el
seguimiento de modificaciones para optimizar rendimiento
Importamos la librería os que nos maneja rutas y archivos del sistema, creamos la
clase Config que nos va a crear la conexión a la base de datos de postgresql.
Script models.py
from flask_sqlalchemy import SQLAlchemy
# Instancia de SQLAlchemy
db = SQLAlchemy()
class Estudiante(db.Model):
__tablename__ = 'estudiantes'
# Definición de los campos de la tabla
id = db.Column(db.Integer, primary_key=True)
nombre = db.Column(db.String(100), nullable=False)
edad = db.Column(db.Integer, nullable=False)
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def __repr__(self):
return f'<Estudiante {self.nombre}>'
Creamos la clase estudiante donde mapeamos los campos de la tabla de la base de
datos.
Script index.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Registrar Estudiante</title>
</head>
<body>
<h1>Formulario de Registro de Estudiante</h1>
<!-- Formulario para registrar estudiantes -->
<form action="/registrar" method="POST">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" required />
<br /><br />
<label for="edad">Edad:</label>
<input type="number" id="edad" name="edad" required />
<br /><br />
<button type="submit">Registrar Estudiante</button>
</form>
</body>
</html>
Creamos el formulario en html donde tenga los inputs de nombre, edad y el botón
de “Registrar estudiante”.
Utilizamos el metodo post y la ruta con la que va a interactuar con flask para
hacer el proceso de registro.
Scrip app.py
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
from config import Config
from models import Estudiante # Importar el modelo desde models.py
# Crear la aplicación Flask
app = Flask(__name__)
# Cargar la configuración desde el archivo config.py
app.config.from_object(Config)
# Instanciar SQLAlchemy
db = SQLAlchemy(app)
# Crear la base de datos si no existe
with app.app_context():
db.create_all()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/registrar', methods=['POST'])
def registrar_estudiante():
# Obtener los datos del formulario
nombre = request.form['nombre']
edad = request.form['edad']
# Crear una nueva instancia del modelo Estudiante
nuevo_estudiante = Estudiante(nombre=nombre, edad=edad)
# Agregar el estudiante a la base de datos
db.session.add(nuevo_estudiante)
db.session.commit()
return redirect('/')
if __name__ == '__main__':
app.run(debug=True)
PRUEBAS DE FUNCIONAMIENTO
Ejecutamos el comando indicado en la imagen para iniciar la aplicación.
Podemos ver el mensaje que la aplicación está corriendo en la url
http://127.0.0.1:5000.
Escribimos la url en el navegador y observamos el formulario de registro de
estudiante.
Digitamos los datos mostrados en la imagen y damos clic en “Registrar
Estudiante”.
Vamos a la tabla estudiantes en pgadmin ,damos clic derecho encima de ella y
damos clic en las secciones indicadas en la imagen.
Podemos observar que el registro se hizo correctamente en la base de datos, por
tanto, la integración de python con flask-html y base de datos postgresql fué
exitosa.