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