From 980667ff221d5b19c29f2ac50ecfcc0e248470f8 Mon Sep 17 00:00:00 2001 From: Minimata Date: Tue, 29 Apr 2025 08:12:08 +0200 Subject: [PATCH] vault backup: 2025-04-29 08:12:08 --- 06 - Teaching/Exercises 923.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/06 - Teaching/Exercises 923.md b/06 - Teaching/Exercises 923.md index 2abb8ab..7540563 100644 --- a/06 - Teaching/Exercises 923.md +++ b/06 - Teaching/Exercises 923.md @@ -124,6 +124,8 @@ La faille de sécurité a malheureusement pu être exploitée par un hacker du n L'entreprise utilise l'ORM Peewee pour contrôler sa base de donnée et le model qui nous intéresse est défini comme suit: ```python +from datetime import date + class User(Model): name = CharField() # Nom d'utilisateur date_created = DateField() # Date de création du compte @@ -137,15 +139,35 @@ On vous demande donc le code Python nécessaire pour effectuer les actions suiva Vous devez `print` toutes les instances de `User` dont le nom est égal à "clown". +```python +for user in User.select().where(User.name == "clown"): + print(user) +``` + ### Exercice 6 #### 1 point max. On a de bonne raison de penser que l'utilisateur a créé un compte dans la base de donnée juste avant l'attaque. Il faudrait récupérer le `User` dont la date de création du compte correspond à la date de l'attaque afin de pouvoir le retrouver. +```python +hacker = User.get(User.date_created=date(2025, 4, 17)) +``` + +_équivalent à_ + +```python +hacker = User.select().where(User.date_created=date(2025, 4, 17)).get() +``` + + ### Exercice 7 -#### 1 point max. +#### 2 point max. Vous devez à présent supprimer toutes les instances de `User` dont le nom est égal à "clown". Bonus si vous le faites en une seule ligne. +```python +for user in User.select().where(User.name == "clown"): + user.delete_instance() +```