SQLite est un système de gestion de base de données relationnelle qui est largement utilisé dans le développement d’applications, y compris les applications web. Lorsqu’il est combiné avec Flask, un framework web léger pour Python, SQLite devient une option populaire pour stocker et gérer les données dans les applications web.
Dans le cadre du développement d’applications Flask, utiliser SQLite offre plusieurs avantages. Tout d’abord, SQLite est intégré à Python, ce qui signifie qu’aucune installation supplémentaire n’est nécessaire. De plus, SQLite est un moteur de base de données léger qui ne nécessite pas de configuration complexe, ce qui en fait un choix idéal pour les petites et moyennes applications web.

Pour commencer à utiliser SQLite dans une application Flask, vous devez d’abord importer le module SQLite3 dans votre application. Ensuite, vous pouvez créer une connexion à la base de données en spécifiant le chemin vers le fichier de base de données SQLite. Voici un exemple de code pour créer une connexion à une base de données SQLite dans une application Flask :
pythonimport sqlite3
from flask import Flask
app = Flask(__name__)
def connect_db():
return sqlite3.connect('ma_base_de_donnees.db')
@app.route('/')
def index():
db = connect_db()
cursor = db.cursor()
cursor.execute('SELECT * FROM ma_table')
result = cursor.fetchall()
db.close()
return str(result)
if __name__ == '__main__':
app.run(debug=True)
Dans cet exemple, une fonction connect_db
est définie pour établir une connexion à la base de données SQLite. Cette fonction est appelée dans la route ‘/’ de l’application Flask. À l’intérieur de la route, une requête SQL est exécutée pour récupérer toutes les lignes de la table ‘ma_table’, et le résultat est renvoyé en tant que chaîne de caractères.
Pour exécuter des requêtes SQL plus complexes dans une application Flask, vous pouvez utiliser les méthodes execute
et fetchall
de l’objet curseur retourné par la méthode cursor()
de l’objet de connexion à la base de données. Vous pouvez également utiliser des paramètres de requête pour éviter les injections SQL et rendre votre application plus sécurisée.
Il est également possible d’utiliser des ORM (Object-Relational Mapping) avec Flask pour simplifier l’interaction avec la base de données SQLite. SQLAlchemy est un ORM populaire qui prend en charge SQLite et peut être utilisé avec Flask pour simplifier les opérations de base de données et rendre le code plus lisible et plus maintenable.
En résumé, SQLite est un choix solide pour le stockage de données dans les applications Flask en raison de sa simplicité, de sa légèreté et de son intégration facile avec Python. En utilisant les bonnes pratiques de développement et en prenant en compte la sécurité, vous pouvez créer des applications web robustes et performantes avec Flask et SQLite.
Plus de connaissances
Bien sûr, plongeons un peu plus dans les détails de l’utilisation de SQLite dans les applications Flask.
Configuration de la Base de Données SQLite dans Flask
Lorsque vous travaillez avec SQLite dans une application Flask, vous avez généralement besoin de spécifier le chemin vers le fichier de base de données SQLite. Par défaut, Flask stocke la base de données dans le répertoire de l’application. Vous pouvez spécifier un chemin personnalisé en utilisant la configuration de l’application Flask. Voici comment vous pouvez le faire :
pythonimport os
from flask import Flask
app = Flask(__name__)
app.config['DATABASE'] = os.path.join(app.root_path, 'ma_base_de_donnees.db')
En utilisant la configuration de l’application Flask, vous pouvez spécifier divers paramètres de la base de données, tels que le chemin, le nom et d’autres options spécifiques à SQLite.
Création de Tables et Manipulation de Données
Après avoir établi une connexion à la base de données, vous pouvez créer des tables et manipuler les données à l’aide de requêtes SQL. Flask offre plusieurs moyens de gérer ces opérations, notamment en utilisant des extensions comme Flask-SQLAlchemy ou en écrivant directement des requêtes SQL.
Voici un exemple de création d’une table et d’insertion de données :
python@app.route('/create_table')
def create_table():
db = connect_db()
cursor = db.cursor()
cursor.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, email TEXT)')
db.commit()
db.close()
return 'Table created successfully'
@app.route('/insert_data')
def insert_data():
db = connect_db()
cursor = db.cursor()
cursor.execute("INSERT INTO users (username, email) VALUES ('john', 'john@example.com')")
db.commit()
db.close()
return 'Data inserted successfully'
Utilisation d’ORM avec Flask
Comme mentionné précédemment, SQLAlchemy est un ORM populaire qui peut être utilisé avec Flask pour simplifier les opérations de base de données. Avec SQLAlchemy, vous pouvez définir des classes Python qui correspondent aux tables de la base de données et effectuer des opérations CRUD (Create, Read, Update, Delete) de manière plus intuitive.
Voici un exemple d’utilisation de SQLAlchemy pour définir un modèle d’utilisateur et effectuer des opérations CRUD :
pythonfrom flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///ma_base_de_donnees.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
# Créer la table dans la base de données
db.create_all()
# Insérer un nouvel utilisateur
new_user = User(username='john', email='john@example.com')
db.session.add(new_user)
db.session.commit()
# Récupérer tous les utilisateurs
users = User.query.all()
En utilisant SQLAlchemy, vous pouvez manipuler les données de manière plus objet et abstraite, ce qui rend le code plus lisible et plus facile à maintenir.
Gestion des Migrations de Base de Données
Lorsque votre application évolue, il est souvent nécessaire de modifier le schéma de la base de données. SQLAlchemy offre des outils de migration intégrés qui vous permettent de gérer ces changements de manière efficace. Des outils populaires tels que Alembic peuvent être utilisés avec Flask et SQLAlchemy pour gérer les migrations de base de données de manière transparente.
En résumé, l’utilisation de SQLite dans les applications Flask offre une solution simple et efficace pour la gestion des données. En combinant Flask avec des outils comme SQLAlchemy, vous pouvez créer des applications web robustes et évolutives tout en simplifiant le processus de développement et de maintenance.