Ejercicios: Desarrollo Backend con Python y Flask

1. Crear clases en Python
Definir clases `Persona` y `Estudiante` usando herencia y métodos sobrescritos.
class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def presentarse(self):
        return f"Hola, soy {self.nombre} y tengo {self.edad} años."

class Estudiante(Persona):
    def __init__(self, nombre, edad, carrera):
        super().__init__(nombre, edad)
        self.carrera = carrera

    def estudiar(self):
        return f"{self.nombre} está estudiando {self.carrera}"

    def presentarse(self):
        return f"Hola, soy {self.nombre}, tengo {self.edad} años y estudio {self.carrera}"
2. Crear aplicación web en Flask
Estructura básica de Flask y conexión con MySQL usando PyMySQL.
# app.py
from flask import Flask, render_template, request, redirect
from conexion import obtener_conexion

app = Flask(__name__)

@app.route('/')
def formulario():
    return render_template('formulario.html')

@app.route('/guardar', methods=['POST'])
def guardar():
    nombre = request.form['nombre']
    direccion = request.form['direccion']
    ciudad = request.form['ciudad']

    conexion = obtener_conexion()
    with conexion.cursor() as cursor:
        cursor.execute("INSERT INTO estudiantes(nomEstudiante, dirEstudiante, ciuEstudiante) VALUES (%s, %s, %s)", 
                      (nombre, direccion, ciudad))
    conexion.commit()
    conexion.close()
    return redirect('/')
3. Conexión a base de datos
Archivo `conexion.py` para establecer conexión con MySQL.
import pymysql

def obtener_conexion():
    return pymysql.connect(
        host='localhost',
        user='root',
        password='tu_contraseña',
        db='escuela',
        cursorclass=pymysql.cursors.DictCursor
    )
4. Crear base de datos y tabla en MySQL
Sentencias SQL necesarias:
CREATE DATABASE escuela;
USE escuela;
CREATE TABLE estudiantes (
  IdEstudiante INT PRIMARY KEY AUTO_INCREMENT,
  nomEstudiante VARCHAR(100),
  dirEstudiante VARCHAR(150),
  ciuEstudiante VARCHAR(100)
);
5. Crear plantilla HTML
Vista `formulario.html` ubicada en la carpeta `templates/`:
<!DOCTYPE html>
<html>
<head><title>Registro de Estudiantes</title></head>
<body>
  <h1>Agregar Estudiante</h1>
  <form action="/guardar" method="post">
    <label>Nombre:</label><br>
    <input type="text" name="nombre"><br>
    <label>Dirección:</label><br>
    <input type="text" name="direccion"><br>
    <label>Ciudad:</label><br>
    <input type="text" name="ciudad"><br><br>
    <input type="submit" value="Guardar">
  </form>
</body>
</html>
← Volver