Utiliser la DB disponible sur moodle!
Jusqu'ici, vous avez vu comment vous pouvez interagir avec une base de données SQLite initialement (presque) vide. Nous avons vu comment créer des tables, faire des requêtes et comment faire interagir le Python, le SQL et l'HTML.
Nous allons maintenant voir comment nous pouvons réutiliser la base de données disponible sur Moodle.
Une fois que vous avez téléchargé le fichier de la base de données, vous devez le placer dans le dossier instance qui se trouve au même niveau que le dossier mobility et qui a déjà été créé par Flask si vous avez correctement suivi ce TP.
|-- instance
| `-- db.sqlite
|-- mobility
S'il n'est pas encore créé, vous pouvez le faire à l'aide de la commande mkdir depuis le dossier dans lequel vous avez mis le code relatif au TP.
mkdir instance
Ensuite, copiez la DB à l'aide de la commande cp.
cp <chemin_vers_la_db>/db.sqlite instance/db.sqlite
Vous devez également corriger le chemin vers la base de données dans mobility/__init__.py. Par défaut, le projet pointe vers un fichier inexistant (poudlard.sqlite) dans le mauvais dossier. Remplacez la ligne correspondante pour utiliser app.instance_path et le bon nom de fichier :
mobility/__init__.py
app.config.from_mapping(
SECRET_KEY='dev',
DATABASE=os.path.join(app.instance_path, 'db.sqlite'),
)
Il vous suffit ensuite de modifier le fichier db.py pour que la fonction init_db n'exécute pas le script schema.sql
mobility/db.py
def init_db():
db = get_db()
# with current_app.open_resource('schema.sql') as f:
# db.executescript(f.read().decode('utf8'))
Si vous relancez votre application, vous devrez voir une longue liste d'aéroports s'afficher
Lorsque vous allez ajouter la base de données dans votre projet sur la forge, vous allez voir que git ne verra pas ce fichier. Cela est dû au fait que dans le fichier .gitignore qui vous a été fourni, le dossier instance est ignoré. Commentez la ligne correspondante dans le fichier.
.gitignore
# instance/
Continuez en lisant Requêtes avancées (optionnel).