En este tutorial, lo guiaremos sobre cómo instalar y usar MySQL con el marco Flask fácilmente.
El primer requisito es tener Python y Flask instalados en su sistema, como suponemos que ya los tiene, pasemos directamente a la instalación. flask-mysql
paquete.
Si no, sigue este tutorial:
Instalar flask-mysql
paquete
pip install flask-mysql
Importar flask-mysql
En su archivo de aplicación flask, importemos el paquete flask-mysql:
from flask import Flask
from flask_mysql import MySQL
aplicación.py
Ahora, podemos conectarnos a la base de datos MySQL usando lo siguiente, no olvide reemplazar los datos de conexión con los suyos.
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost' # Replace with your MySQL host
app.config['MYSQL_USER'] = 'username' # Replace with your MySQL username
app.config['MYSQL_PASSWORD'] = 'password' # Replace with your MySQL password
app.config['MYSQL_DB'] = 'database_name' # Replace with your MySQL database name
mysql = MySQL(app)
aplicación.py
Recuperar y mostrar datos de MySQL usando Flask
Ahora podemos comenzar a usar la base de datos, digamos que tiene una lista de usuarios en el users
tabla, en el siguiente fragmento, recuperaremos todos los usuarios y representaremos su información en users.html
.
from flask import Flask, render_template
from flask_mysql import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost' # Replace with your MySQL host
app.config['MYSQL_USER'] = 'username' # Replace with your MySQL username
app.config['MYSQL_PASSWORD'] = 'password' # Replace with your MySQL password
app.config['MYSQL_DB'] = 'database_name' # Replace with your MySQL database name
mysql = MySQL(app)
@app.route('/users')
def get_users():
cursor = mysql.connection.cursor()
cursor.execute('SELECT * FROM users')
users = cursor.fetchall()
cursor.close()
return render_template('users.html', users=users)
if __name__ == '__main__':
app.run()
aplicación.py
El siguiente es el users.html
plantilla, que representará los datos de get_users
función.
<!DOCTYPE html>
<html>
<head>
<title>Users</title>
</head>
<body>
<h1>Users</h1>
<ul>
{% for user in users %}
<li>{{ user.name }}</li>
{% endfor %}
</ul>
</body>
</html>
usuarios.html
Crear e insertar registros en la base de datos
A continuación se explica cómo utilizar Flask para insertar un nuevo registro en el users
tabla, utilizando un formulario HTML.
@app.route('/insert', methods=['POST'])
def insert_data():
name = request.form['name']
age = request.form['age']
cursor = mysql.connection.cursor()
query = f"INSERT INTO users (name, age) VALUES ('{name}', {age})"
cursor.execute(query)
mysql.connection.commit()
cursor.close()
return 'Data inserted successfully!'
<!DOCTYPE html>
<html>
<head>
<title>Insert Data</title>
</head>
<body>
<h1>Insert Data</h1>
<form method="POST" action="/insert">
<label for="name">Name:</label>
<input type="text" name="name" required>
<label for="age">Age:</label>
<input type="number" name="age" required>
<button type="submit">Submit</button>
</form>
</body>
</html>
insertar.html
Eliminar registros de una base de datos MySQL con Flask
@app.route('/delete/<int:id>')
def delete_data(id):
cursor = mysql.connection.cursor()
query = f"DELETE FROM table_name WHERE id = {id}"
cursor.execute(query)
mysql.connection.commit()
cursor.close()
return 'Data deleted successfully!'
Editar registros con base de datos MySQL con Flask
@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit_data(id):
data = Data.query.get_or_404(id)
if request.method == 'POST':
data.name = request.form['name']
data.age = request.form['age']
db.session.commit()
return redirect('/')
return render_template('edit.html', data=data)
aplicación.py
<!DOCTYPE html>
<html>
<head>
<title>Edit Data</title>
</head>
<body>
<h1>Edit Data</h1>
<form method="POST">
<label for="name">Name:</label>
<input type="text" name="name" value="{{ data.name }}" required>
<label for="age">Age:</label>
<input type="number" name="age" value="{{ data.age }}" required>
<button type="submit">Save</button>
</form>
</body>
</html>
editar.html
Etiquetas
Tutorial de Flask Python mysql ¿Cómo?