Flask es un framework web ligero y flexible para Python que permite construir aplicaciones web de manera rápida y sencilla. Se enfoca en la simplicidad y la modularidad, lo que lo hace fácil de aprender y utilizar para proyectos pequeños y grandes. No requiere de herramientas o bibliotecas adicionales, lo que significa que puedes comenzar a construir tu aplicación web con solo unas pocas líneas de código.
A continuación te proporcionamos un manual detallado para crear una aplicación web usando Flask en Python 3:
Antes de comenzar a escribir código para la aplicación web, es importante tener un entorno de desarrollo adecuado. Asegúrate de tener Python 3.x
y pip
(el administrador de paquetes de Python) instalados en tu sistema. Luego, sigue los siguientes pasos:
Crea un nuevo directorio para la aplicación web en tu sistema.
Abre una terminal o consola de comandos en el directorio recién creado.
Crea un entorno virtual de Python utilizando el comando python3 -m venv venv
en la terminal.
Activa el entorno virtual con el comando source venv/bin/activate
en sistemas UNIX o venv\Scripts\activate
en sistemas Windows.
Instala Flask con el comando pip install flask
.
Ahora que has preparado el entorno de desarrollo, puedes comenzar a escribir el código para la aplicación web. Sigue los siguientes pasos:
Crea un archivo app.py
en el directorio de la aplicación web.
Importa Flask y crea una instancia de la aplicación web. Puedes hacerlo de la siguiente manera:
file app.py
from flask import Flask
app = Flask(__name__)
file app.py
@app.route('/')
def index():
return '¡Bienvenido a mi aplicación web!'
if __name__ == '__main__':
al final del archivo para asegurarte de que la aplicación web solo se ejecute, si se ejecuta el archivo directamente y no si se importa a otro archivo. Puedes hacerlo de la siguiente manera:file app.py
if __name__ == '__main__':
app.run()
Para ejecutar la aplicación web, sigue los siguientes pasos:
Abre una terminal o consola de comandos en el directorio de la aplicación web.
Activa el entorno virtual con el comando source venv/bin/activate
en sistemas UNIX o venv\Scripts\activate
en sistemas Windows.
Ejecuta la aplicación web con el comando python app.py
.
Abre un navegador web y visita http://localhost:5000/. Deberías ver el mensaje de bienvenida que agregaste anteriormente.
Ahora que has creado una aplicación web básica, puedes comenzar a agregar más funcionalidad a ella. Puedes hacerlo agregando más rutas y funciones en el archivo app.py
. Por ejemplo, puedes agregar una ruta para mostrar una página de contacto y una función que procese un formulario de contacto. Puedes hacerlo de la siguiente manera:
file app.py
@app.route('/contacto')
def contacto():
return 'Página de contacto'
@app.route('/enviar', methods=['POST'])
def enviar():
nombre = request.form['nombre']
email = request.form['email']
mensaje = request.form['mensaje']
# Procesar el formulario y enviar el correo electrónico
return 'Mensaje enviado correctamente'
En el ejemplo anterior, la ruta /contacto
muestra una página de contacto y la ruta /enviar
procesa un formulario enviado por el usuario utilizando el método HTTP POST.
Para procesar el formulario, se utiliza el objeto request
que viene con Flask. La información enviada por el usuario se puede obtener del objeto request.form
que es un diccionario que contiene los datos del formulario. En este ejemplo, se obtienen los valores de nombre
, email
y mensaje
del formulario.
Luego, se procesa el formulario y se envía un mensaje de confirmación al usuario.
Cuando se construyen aplicaciones web más complejas, puede ser útil utilizar plantillas para crear el contenido HTML de las páginas. Flask utiliza el motor de plantillas Jinja2 para hacer esto.
Para usar plantillas en tu aplicación web, sigue los siguientes pasos:
Crea una carpeta templates
en el directorio de la aplicación web.
Crea un archivo de plantilla llamado base.html
en la carpeta templates
. Este archivo contendrá la estructura básica de todas las páginas de tu sitio web.
file base.html
<!doctype html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
contacto.html
en la carpeta templates
. Este archivo contendrá el contenido específico de la página de contacto.file contacto.html
{% extends 'base.html' %}
{% block title %}Contacto{% endblock %}
{% block content %}