En esta entrada te mostramos cómo levantar un servidor en Python utilizando Flask, un microframework ligero ideal para desarrollo web. Aprenderás a recoger datos desde un formulario HTML y mostrar esa información en una segunda página web, todo gestionado desde tu servidor Flask.
Esta guía práctica es perfecta para quienes desean iniciarse en el desarrollo backend con Python de forma sencilla y efectiva.
Crear el servidor en Python
Abrimos visual estudio y creamos la siguiente estructura de carpetas:
- Modelo
- Vista
- Controlador
Donde el controlador va a tener el archivo de inicio del servidor, y la capa de vista los html de salida, y la capa del modelo será la carpeta donde se alojaran los archivos correspondientes de una base de datos.

Capa de la vista
Creamos un archivo inicio.html con los datos del formulario para enviarlos a resultados.html mediante el metodo POST:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="/resultados" method="post">
<label for="dni">Dni:</label>
<input type="text" id="dni" name="dni">
<br>
<label for="nombre">Nombre:</label>
<input type="text" id="name" name="nombre">
<br>
<label for="apellidos">Apellidos:</label>
<input type="text" id="apellidos" name="apellidos">
<br>
<label for="direccion">Direccion:</label>
<input type="text" id="direccion" name="direccion">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Creamos el archivo de salida resultados.html:
Document
El dni es:
El nombre es:
Los apellidos son:
La direccion es:
Capa del controlador
Establecemos la ruta donde se encuentran las plantillas:
template_dir = os.path.relpath('../vista')
Creamos una instancia del modulo principal y además establecemos la ruta del directorio de las plantillas:
app = Flask(__name__,template_folder=template_dir)
Definimos la ruta de inicio y la plantilla inicial que va arrancar en la ejecución:
@app.route('/')
def index():
return render_template('inicio.html')
Definimos la ruta donde esta el archivo resultados, creamos una nueva función llamada resultados donde le decimos que si mandamos los datos mediante POST recoja los datos de la request y nos valla al html de resultados:
@app.route('/resultados',methods=['POST'])
def resultados():
if request.method == 'POST':
dni = request.form['dni']
nombre = request.form['nombre']
apellidos = request.form['apellidos']
direccion = request.form['direccion']
return render_template('resultados.html',dni=dni,nombre=nombre,apellidos=apellidos,direccion=direccion)
return render_template('inicio.html')
Arrancamos la aplicación del servidor en Python en la ruta localhost y en el puerto 8080
if __name__=='__main__': app.run(host='localhost',port=8080,debug=True)
from flask import Flask, render_template, request
import os
template_dir = os.path.relpath('../vista') #Establecemos el nombre de la carpeta de la vista
app = Flask(__name__,template_folder=template_dir)
@app.route('/')
def index():
return render_template('inicio.html')
@app.route('/resultados',methods=['POST'])
def resultados():
if request.method == 'POST':
dni = request.form['dni']
nombre = request.form['nombre']
apellidos = request.form['apellidos']
direccion = request.form['direccion']
return render_template('resultados.html',dni=dni,nombre=nombre,apellidos=apellidos,direccion=direccion)
return render_template('inicio.html')
if __name__=='__main__':
app.run(host='localhost',port=8080,debug=True)
Vemos las salidas del servidor basado en Python:
En la primera imagen insertamos los datos en una la pagina web del localhost y la segunda imagen vemos los datos de salida impresos en la pagina de resultados.




