public:appro-s7:td_web:orm

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:appro-s7:td_web:orm [2023/10/18 14:19] edaucepublic:appro-s7:td_web:orm [2023/11/03 15:00] (Version actuelle) edauce
Ligne 1: Ligne 1:
-==== 9. L'ORM Django et les QuerySets ====+===== 10. L'ORM Django et les QuerySets =====
  
 Dans ce chapitre, nous allons apprendre comment Django se connecte à la base de données et comment il y enregistre des choses. On respire un grand coup et on y va ! Dans ce chapitre, nous allons apprendre comment Django se connecte à la base de données et comment il y enregistre des choses. On respire un grand coup et on y va !
Ligne 9: Ligne 9:
 Il est plus simple d'apprendre avec un exemple. Et si nous nous intéressions à celui-ci ? Il est plus simple d'apprendre avec un exemple. Et si nous nous intéressions à celui-ci ?
  
-=== Le shell Django ===+==== Le shell Django ====
  
 Ouvrez la console de votre ordinateur (et non celle de PythonAnywhere) et tapez la commande suivante : Ouvrez la console de votre ordinateur (et non celle de PythonAnywhere) et tapez la commande suivante :
Ligne 20: Ligne 20:
 Vous êtes maintenant dans la console interactive de Django. C'est comme celle de Python, mais avec toute la magie qu'apporte Django :). Les commandes Python sont aussi utilisables dans cette console. Vous êtes maintenant dans la console interactive de Django. C'est comme celle de Python, mais avec toute la magie qu'apporte Django :). Les commandes Python sont aussi utilisables dans cette console.
  
-=== Lister tous les objets ===+==== Lister tous les objets ====
  
 Essayons tout d'abord d'afficher tous nos billets. Vous pouvez le faire à l'aide de cette commande : Essayons tout d'abord d'afficher tous nos billets. Vous pouvez le faire à l'aide de cette commande :
Ligne 39: Ligne 39:
 Cela nous permet d'obtenir une liste des billets que nous avons créés tout à l'heure ! Rappelez-vous : nous avions créé ces billets à l'aide de l'interface d'administration de Django. Cependant, nous aimerions maintenant créer de nouveaux billets à l'aide de python : comment allons-nous nous y prendre ? Cela nous permet d'obtenir une liste des billets que nous avons créés tout à l'heure ! Rappelez-vous : nous avions créé ces billets à l'aide de l'interface d'administration de Django. Cependant, nous aimerions maintenant créer de nouveaux billets à l'aide de python : comment allons-nous nous y prendre ?
  
-=== Créer des objets ===+==== Créer des objets ====
  
 Voici comment créer un nouveau objet Billet dans la base de données : Voici comment créer un nouveau objet Billet dans la base de données :
Ligne 67: Ligne 67:
     >>> Billet.objects.create(author=me, title='Sample title', text='Test')     >>> Billet.objects.create(author=me, title='Sample title', text='Test')
     <Billet: Sample title>     <Billet: Sample title>
 +    
 Et voilà ! Vous aimeriez voir si ça a vraiment marché ? Et voilà ! Vous aimeriez voir si ça a vraiment marché ?
  
 command-line command-line
     >>> Billet.objects.all()     >>> Billet.objects.all()
-<QuerySet [<Billet: my post title>, <Billet: another post title>, <Billet: Sample title>]>+    <QuerySet [<Billet: my post title>, <Billet: another post title>, <Billet: Sample title>]> 
 +    
 Et voilà : un Billet de plus dans la liste ! Et voilà : un Billet de plus dans la liste !
  
-=== Ajouter plus de billets ===+==== Ajouter plus de billets ====
  
 Amusez-vous à ajouter d'autres billets pour vous entraîner un peu. Essayez d'ajouter deux ou trois billets en plus puis passez à la partie suivante. Amusez-vous à ajouter d'autres billets pour vous entraîner un peu. Essayez d'ajouter deux ou trois billets en plus puis passez à la partie suivante.
  
-=== Filtrer les objets ===+==== Filtrer les objets ====
  
 L'intérêt des QuerySets, c'est que l'on peut les filtrer. Disons que nous aimerions retrouver tous les billets écrits par l'utilisateur Ola. Pour cela, nous allons utiliser filter à la place de all dans Billet.objects.all(). Les parenthèses vont nous servir à préciser quelles sont les conditions auxquelles un billet de blog doit se conformer pour être retenu par notre queryset. Dans notre exemple, la condition est que author soit égal à me. La manière de le dire en Django c'est : author=me. Maintenant, votre bout de code doit ressembler à ceci: L'intérêt des QuerySets, c'est que l'on peut les filtrer. Disons que nous aimerions retrouver tous les billets écrits par l'utilisateur Ola. Pour cela, nous allons utiliser filter à la place de all dans Billet.objects.all(). Les parenthèses vont nous servir à préciser quelles sont les conditions auxquelles un billet de blog doit se conformer pour être retenu par notre queryset. Dans notre exemple, la condition est que author soit égal à me. La manière de le dire en Django c'est : author=me. Maintenant, votre bout de code doit ressembler à ceci:
Ligne 112: Ligne 114:
     <QuerySet [<Billet: Sample title>]>     <QuerySet [<Billet: Sample title>]>
          
-=== Classer les objets ===+==== Classer les objets ====
  
 Les QuerySets permettent aussi de trier la liste des objets. Essayons de les trier par le champ created_date : Les QuerySets permettent aussi de trier la liste des objets. Essayons de les trier par le champ created_date :
  • public/appro-s7/td_web/orm.1697631547.txt.gz
  • Dernière modification : 2023/10/18 14:19
  • de edauce