L’objectif de l’activité est de créer une petite base de données concernant des pizzas, du point de vue d’un gérant de pizzeria : recettes, prix, ventes, notation, …
Utiliser le logiciel DB Browser for SQLite, dans sa version portable.
DB Browser for SQLite
Site : http://sqlitebrowser.org/
DB Browser pour SQLite est un outil visuel et open source de haute qualité pour créer, concevoir et éditer des fichiers de base de données compatibles avec SQLite.
Il est destiné aux utilisateurs et aux développeurs souhaitant créer des bases de données, rechercher et modifier des données. Il utilise une interface similaire à une feuille de calcul et vous n’avez pas besoin d’apprendre des commandes SQL compliquées.
Les contrôles et les assistants sont disponibles pour les utilisateurs :
- Créer et compacter des fichiers de base de données
- Créer, définir, modifier et supprimer des tables
- Créer, définir et supprimer des index
- Parcourir, modifier, ajouter et supprimer des enregistrements
- Rechercher des enregistrements
- Importer et exporter des enregistrements sous forme de texte
- Importer et exporter des tables depuis / vers des fichiers CSV
- Importer et exporter des bases de données à partir de / vers des fichiers de vidage SQL
- Émettre des requêtes SQL et inspecter les résultats
- Examiner un journal de toutes les commandes SQL émises par l’application
Installation Windows / Mac OS
Télécharger l’application adaptée directement depuis le site de DB Browser pour SQLite
Remarque : il existe pour Windows une version portable permettant à des utilisateurs ne possédant pas les privilèges administrateur d’utiliser DB Browser pour SQLite.
Installation Linux
sudo apt-get install sqlitebrowser
Schéma de la base de données
Pizzas (nom, prix_vente, note_consommateur)
Ingredients (nom, nom_pizza, quantite)
Produits (nom, prix_kg, allergene)
Ventes (id, date, nom_pizza)
Analyse du schéma
Identifier les différentes clés (primaires et étrangères) de ce schéma.
Représenter ce schéma sous forme graphique.
Définir les domaines de chacun des attributs des relations de la base.
Création des tables
A l’aide du logiciel DB Browser for SQLite :
Remplir la base de données avec quelques enregistrements pour chaque relation.
Exporter le code SQL représentant la base
A ce stade, fusionner vos travaux afin d’obtenir une base suffisamment fournie…
Établissement des requêtes
Faire le Quiz ci-dessous, en notant bien chacune des réponses !
Aide
La fonction SQL MONTH(date) permet d’extraire le mois depuis une date.
Toutes les fonctions SQL de base sont documentées ici : https://sql.sh/fonctions
Site WEB
Le gérant de la pizzeria souhaite utiliser cette base de données pour réaliser quelques tâches de manière automatique :
- création et mise à jour des menus
- évolution des ventes
- évolution des bénéfices réalisés
- …
Pour cela, on se propose de réaliser un petit site WEB, doté d’un formulaire simple (quelques boutons et listes déroulante), et affichant les résultat de requêtes préalablement définies.
Préparation
Télécharger la base de données qui servira d’exemple :
pizzeria (à dézipper !)
À l’aide de phpMyAdmin (sur le Raspberry), créer une nouvelle base, puis y importer les tables à partir du fichier .sql téléchargé.
Structure de la page
Flask permet de construire des pages dynamiquement : elles sont construites coté serveur, à l’aide du langage Python.
Voici une structure envisageable :

Le fichier base.html
Un fichier base.html sert de base à toutes les pages du site.
<!DOCTYPE html>
<html lang="fr-FR">
<head>
<meta charset="UTF-8" />
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% include "header.html" %}
<div class="interieur">
{% block content %}{%- endblock %}
</div>
{% include "footer.html" %}
</body>
</html>
Ce fichier comporte :
- au format HTML, l’entête HTML et les balises <head> et <body> .
- dans le corps de la page (<body>) on inclue l’entête et le pied de page, enregistrés dans deux fichiers header.html et footer.html , en utilisant dans le code HTML les instructions Flask (qui utilise le moteur de template Jinja) {% include « header.html » %} et {% include « footer.html » %}
- le titre de la page et son contenu sont inclus grâce aux instructions {% block title %}{% endblock %} et {% block content %}{% endblock %}
Entête et pied de page
Ils sont définis dans deux fichiers header.html et footer.html
Les pages du site
Chaque page (xxx.html ) aura la forme :
{% extends "base.html" %}
{% block title %}Titre de la page{% endblock %}
{% block content %}
... code HTML ...
{% endblock %}
Structure du dossier du site
Au finaln le dossier du site aura cette forme :
- pizzeria
- logs
- templates
- base.html
- header.html
- footer.html
- accueil.html
- static
- pizzeria.wsgi
- pizzeria.py
Interrogation de la base de données
Pour interroger une base de données MySQL avec python, il faut installer une bibliothèque, comme mysql-connector par exemple.
pip3 install mysql-connector
Voici un
article sur l’utilisation de mysql-connector .
Écrire et tester une fonction Python permettant de se connecter à la base de données pizzeria et d’obtenir le résultat d’une requête SQL.
Dans un fichier table.html , en utilisant les structures Jinja {% for … %}…{% endfor %} , écrire le code permettant de construire un tableau HTML (balise <table> ).