Ejemplo de aplicaciĆ³n web con Python Flask y MySQL

Posted by


En este tutorial, aprenderĆ”s a crear una aplicaciĆ³n web usando Python Flask y MySQL como base de datos. Crearemos una aplicaciĆ³n de ejemplo que permitirĆ” a los usuarios registrar y gestionar sus tareas.

Paso 1: InstalaciĆ³n de las bibliotecas necesarias

Antes de empezar, asegĆŗrate de tener Python instalado en tu sistema. Puedes descargar la Ćŗltima versiĆ³n de Python desde el sitio web oficial.

Para instalar Flask y MySQL en tu sistema, puedes utilizar pip, que es el administrador de paquetes de Python. Abre tu terminal y ejecuta los siguientes comandos:

pip install Flask
pip install flask-mysql

Paso 2: Crear la base de datos MySQL

Para este ejemplo, crearemos una base de datos llamada todolist con una tabla llamada tasks. Puedes utilizar cualquier herramienta de administraciĆ³n de bases de datos, como phpMyAdmin o MySQL Workbench, para crear la base de datos y la tabla.

AquĆ­ estĆ” el comando SQL para crear la base de datos y la tabla:

CREATE DATABASE todolist;

USE todolist;

CREATE TABLE tasks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description VARCHAR(255),
    due_date DATE,
    is_completed BOOLEAN DEFAULT 0
);

Paso 3: Crear la aplicaciĆ³n Flask

Crea un nuevo directorio para tu proyecto y dentro de ese directorio, crea un archivo llamado app.py que contendrĆ” el cĆ³digo de tu aplicaciĆ³n Flask.

Primero, importa los mĆ³dulos necesarios:

from flask import Flask, render_template, request, redirect, url_for
from flaskext.mysql import MySQL

Luego, inicializa la aplicaciĆ³n y configura la conexiĆ³n a la base de datos MySQL:

app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'tu_usuario'
app.config['MYSQL_DATABASE_PASSWORD'] = 'tu_contraseƱa'
app.config['MYSQL_DATABASE_DB'] = 'todolist'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'

mysql = MySQL()
mysql.init_app(app)

Paso 4: Crear las rutas de la aplicaciĆ³n

Ahora, crea las rutas para tu aplicaciĆ³n. Por ejemplo, puedes tener una ruta para mostrar la lista de tareas, una ruta para agregar una nueva tarea, una ruta para marcar una tarea como completada, etc.

AquĆ­ tienes un ejemplo de cĆ³mo puedes definir algunas rutas:

@app.route('/')
def index():
    cur = mysql.get_db().cursor()
    cur.execute("SELECT * FROM tasks")
    tasks = cur.fetchall()
    return render_template('index.html', tasks=tasks)

@app.route('/add', methods=['POST'])
def add():
    title = request.form['title']
    description = request.form['description']
    due_date = request.form['due_date']

    cur = mysql.get_db().cursor()
    cur.execute("INSERT INTO tasks (title, description, due_date) VALUES (%s, %s, %s)", (title, description, due_date))
    mysql.get_db().commit()

    return redirect(url_for('index'))

Paso 5: Crear las plantillas HTML

Por Ćŗltimo, crea las plantillas HTML para tu aplicaciĆ³n. Puedes utilizar Jinja2, un motor de plantillas para Python, para generar HTML dinĆ”mico.

Crea un directorio llamado templates dentro de tu proyecto y dentro de ese directorio, crea un archivo llamado index.html con el siguiente contenido:

<!DOCTYPE html>
<html>
<head>
    <title>Todo List</title>
</head>
<body>
    <h1>Todo List</h1>

    <ul>
        {% for task in tasks %}
            <li>{{ task.title }}</li>
        {% endfor %}
    </ul>

    <form action="/add" method="post">
        <input type="text" name="title" placeholder="TĆ­tulo">
        <input type="text" name="description" placeholder="DescripciĆ³n">
        <input type="date" name="due_date">
        <button type="submit">Agregar Tarea</button>
    </form>
</body>
</html>

Ā”Y eso es todo! Ahora tienes una aplicaciĆ³n web bĆ”sica que utiliza Python Flask y MySQL para gestionar una lista de tareas. Puedes expandir esta aplicaciĆ³n aƱadiendo mĆ”s funcionalidades, como editar tareas existentes, filtrar tareas por estado, etc.

Espero que este tutorial haya sido Ćŗtil y te haya dado una introducciĆ³n a cĆ³mo crear aplicaciones web utilizando Python Flask y MySQL. Ā”Buena suerte con tu proyecto!

0 0 votes
Article Rating
43 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Anonymous
1 month ago

Vstudio code no reconoce el mĆ³dulo. from flask_mysqldb import MySQL. Saben cĆ³mo de corrige?

@DiegoProducciones91
1 month ago

Que tal, tengo un error. No me permite importar MYSQL desde flask-mysqldb. El error que aparece es: ImportError: cannot import name 'MYSQL' from 'flask_mysqldb'

@marcelomiguel74
1 month ago

Excelente muy bien explicado, tal vez mƔs corto el video, quedarƭan muchas dudas. Felicitaciones y gracias por tu tiempo.

@RodrigoOsO87
1 month ago

Claro y conciso, gracias. Tienes un nuevo suscriptor!!

@DiegoProducciones91
1 month ago

Como podrĆ­amos agregar un cuadro de texto para buscar por nombre el registro que se quiere editar o eliminar?

@Programmer22-pv4xs
1 month ago

Este es el mejor video explicando paso por paso como desarrollar un proyecto desde cero, me gustĆ³ mucho como distribuiste los temas que complementan todo el proyecto, en especial la parte de primero hacer el html y despuĆ©s estilizar, gracias!

@hjoz
1 month ago

Excelente VĆ­deo! Gracias por compartir! … Un pregunta, si quisiera deshabilitar el botĆ³n de 'Save' hasta que se escriba algo en un cuadro de texto (un input). Como lo harĆ­a?

@SenorMoon-ob1dy
1 month ago

podrĆ­as crear un video donde en lugar de utilizar SQL con python utilices mongoDB?

@cristiansarabia2863
1 month ago

Muy buen material

@joseantoniochavezortiz6046
1 month ago

Que tal, una disculpa hay alguna manera como para separarlos por usuarios, por ejemplo que tengas tipos admin o tipos max, para que cada vez que entre un tipo le salga un inicio diferente

@cristianstivenruizrodrigue5221
1 month ago

Muchas gracias, durĆ© varios dĆ­as con el cĆ³digo sin funcionar hasta que vi este video. Me sirviĆ³ mucho.

@educacioninformatica
1 month ago

Saludos.Estimado Fazt Code disculpe la pregunta.ĀæQuĆ© tipo de licencia tiene el proyecto que realiza en este video y que publicĆ³ en github?. De antemano muchas gracias por su valiosa ayuda

@eduardorivas6959
1 month ago

Genial!
Muchas gracias.

@jaimefarfan762
1 month ago

No se si puedas ayudarme estoy tratando de subir mi proyecto de flask en aws pero no he podido por que tiene problemas para redirigir las paginas sabes como podria solucionar este error?

@James90522
1 month ago

buenas tardes segui los pasos no me funciona la parte de la conexion

@jemm280182
1 month ago

Crack. Tremenda explicaciĆ³n

@Richiirg
1 month ago

Man en la linea que guarda los datos (/add_contact) cuando hago el request.method me da un fallo y no me reconoce request, sabes a que se debe alguien tiene respuesta??

@lucasbarrientos8778
1 month ago

Hola tengo una duda, tengo un proyecto de una aplicaciĆ³n web utilizando xammp y flask. Hay alguna manera de hacerlo ejecutable en .exe o similar, es decir transformarlo en un programa portable cn sus respectivas bases de datos

@gabyyhshss
1 month ago

Hola Amigo, espero que puedas ayudarme šŸ™
-> Todo me va perfecto, excepto al momento de querer hacer esto:
background-image: url({{ url_for('static',filename='static/dog.png') }})
– Me aparece estos errores en la consola:
) expected
at-rule or selector expected
– La verdad que he probado y buscado de todo y nada… le puse punto y coma al final y nada…
Espero puedan ayudarme, Saludos!

@RichardNieto-x6j
1 month ago

A mi no me reconoce el puerto de la base de datos. QuƩ me sugieres?