Créez vos applications web avec Django Par Mathieu Xhonneux (MathX) et Maxime L

Créez vos applications web avec Django Par Mathieu Xhonneux (MathX) et Maxime Lorant (Ssx`z) www.siteduzero.com Licence Creative Commons BY-NC-SA 2.0 Dernière mise à jour le 30/10/2012 Sommaire 2 Sommaire ........................................................................................................................................... 3 Lire aussi ............................................................................................................................................ 5 Créez vos applications web avec Django ........................................................................................... 5 Partie 1 : Présentation de Django ....................................................................................................... 6 Créez vos applications web avec Django ......................................................................................................................... 6 Qu’est-ce qu’un framework ? ...................................................................................................................................................................................... 6 Quels sont les avantages d'un framework ? ............................................................................................................................................................... 6 Quels sont les désavantages d'un framework ? .......................................................................................................................................................... 6 Qu’est-ce que Django ? ............................................................................................................................................................................................... 7 Pourquoi ce succès ? .................................................................................................................................................................................................. 7 Une communauté à votre service ............................................................................................................................................................................... 7 Téléchargement et installation .................................................................................................................................................................................... 8 Linux et Mac OS .......................................................................................................................................................................................................... 8 Windows ...................................................................................................................................................................................................................... 9 Vérification de l’installation .......................................................................................................................................................................................... 9 Le fonctionnement de Django ........................................................................................................................................... 10 Un peu de théorie : l'architecture MVC ..................................................................................................................................................................... 10 La spécificité de Django : le modèle MVT ................................................................................................................................................................. 11 Projets et applications ............................................................................................................................................................................................... 13 Gestion d'un projet .......................................................................................................................................................... 13 Créons notre premier projet ...................................................................................................................................................................................... 15 Configurez votre projet .............................................................................................................................................................................................. 16 Créons notre première application ............................................................................................................................................................................ 17 Les bases de données et Django ................................................................................................................................... 18 Une base de données, c'est quoi ? ........................................................................................................................................................................... 18 Le langage SQL et les gestionnaires de base de données ....................................................................................................................................... 19 La magie des ORM ................................................................................................................................................................................................... 20 Le principe des clés étrangères ................................................................................................................................................................................ 22 Partie 2 : Premiers pas ..................................................................................................................... 22 Votre première page grâce aux vues .............................................................................................................................. 22 Hello World ! .............................................................................................................................................................................................................. 22 La gestion des vues .................................................................................................................................................................................................. 23 Routage d'URL : comment j'accède à ma vue ? ....................................................................................................................................................... 25 Organiser proprement vos URLs ............................................................................................................................................................................... 25 Comment procède-t-on ? .......................................................................................................................................................................................... 27 Passer des arguments à vos vues ............................................................................................................................................................................ 28 Des réponses spéciales ............................................................................................................................................................................................ 28 Simuler une page non trouvée .................................................................................................................................................................................. 29 Rediriger l'utilisateur .................................................................................................................................................................................................. 32 Les templates .................................................................................................................................................................. 32 Lier template et vue ................................................................................................................................................................................................... 34 Affichons nos variable à l'utilisateur .......................................................................................................................................................................... 34 Affichage d'une variable ............................................................................................................................................................................................ 34 Les filtres ................................................................................................................................................................................................................... 35 Manipulons nos données avec les tags .................................................................................................................................................................... 35 Les conditions : {% if %} ............................................................................................................................................................................................ 36 Les boucles : {% for %} ............................................................................................................................................................................................. 38 Le tag {% block %} .................................................................................................................................................................................................... 39 Les liens vers les vues : {% url %} ............................................................................................................................................................................ 40 Les commentaires : {% comment %} ........................................................................................................................................................................ 40 Ajoutons des fichiers statiques .................................................................................................................................................................................. 41 Les modèles .................................................................................................................................................................... 42 Créer un modèle ........................................................................................................................................................................................................ 43 Jouons avec des données ........................................................................................................................................................................................ 47 Les liaisons entre modèles ........................................................................................................................................................................................ 52 Les modèles dans les vues ....................................................................................................................................................................................... 52 Afficher les articles du blog ....................................................................................................................................................................................... 54 Afficher un article précis ............................................................................................................................................................................................ 55 L'administration ............................................................................................................................................................... 56 Mise en place de l'administration .............................................................................................................................................................................. 56 Les modules django.contrib ...................................................................................................................................................................................... 56 Accédons à cette administration ! ............................................................................................................................................................................. 58 Première prise en main ............................................................................................................................................................................................. 60 Administrons nos propres modèles ........................................................................................................................................................................... 61 Personnalisons l'administration ................................................................................................................................................................................. 61 Modifier l'aspect des listes ........................................................................................................................................................................................ 65 Modifier le formulaire d'édition .................................................................................................................................................................................. 68 Les formulaires ................................................................................................................................................................ 69 Créer un formulaire ................................................................................................................................................................................................... 70 Utiliser un formulaire dans une vue ........................................................................................................................................................................... 72 Créons nos propres règles de validation ................................................................................................................................................................... 75 Des formulaires à partir de modèles ......................................................................................................................................................................... 78 TP : un raccourcisseur d'URLs ....................................................................................................................................... 2/125 www.siteduzero.com 79 Cahier de charges ..................................................................................................................................................................................................... 80 Correction .................................................................................................................................................................................................................. 85 Partie 3 : Techniques avancées ........................................................................................................ 85 Les vues génériques ....................................................................................................................................................... 85 Premiers pas avec des pages statiques ................................................................................................................................................................... 86 Lister et afficher des données ................................................................................................................................................................................... 87 Une liste d'objets en quelques lignes avec ListView ................................................................................................................................................. 90 Afficher un article via DetailView ............................................................................................................................................................................... 91 Agir sur les données ................................................................................................................................................................................................. 91 CreateView ................................................................................................................................................................................................................ 92 UpdateView ............................................................................................................................................................................................................... 94 DeleteView ................................................................................................................................................................................................................ 96 Techniques avancées dans les modèles ........................................................................................................................ 97 Les requêtes complexes avec Q ............................................................................................................................................................................... 99 L'agrégation ............................................................................................................................................................................................................... 102 Les modèles parents classiques ............................................................................................................................................................................. 102 Les modèles parents abstraits ................................................................................................................................................................................ 102 Les modèles parents classiques ............................................................................................................................................................................. 104 Les modèles proxy .................................................................................................................................................................................................. 104 Partie 4 : Annexes ........................................................................................................................... 105 Déployer votre application en production ...................................................................................................................... 105 Le déploiement ........................................................................................................................................................................................................ 106 Gardez un oeil sur le projet ..................................................................................................................................................................................... 107 Activer l'envoi de mails ............................................................................................................................................................................................ 107 Quelques options utiles... ........................................................................................................................................................................................ 108 Hébergeurs supportant Django ............................................................................................................................................................................... 110 Mémento des filtres ....................................................................................................................................................... 110 Liste des filtres ......................................................................................................................................................................................................... 110 add ........................................................................................................................................................................................................................... 110 capfirst ..................................................................................................................................................................................................................... 110 center ....................................................................................................................................................................................................................... 110 cut ............................................................................................................................................................................................................................ 110 date .......................................................................................................................................................................................................................... 111 default ...................................................................................................................................................................................................................... 111 default_if_none ........................................................................................................................................................................................................ 111 dictsort ..................................................................................................................................................................................................................... 112 dictsortreversed ....................................................................................................................................................................................................... 112 divisibleby ................................................................................................................................................................................................................ 112 escape ..................................................................................................................................................................................................................... 112 escapejs .................................................................................................................................................................................................................. 113 filesizeformat ........................................................................................................................................................................................................... 113 first ........................................................................................................................................................................................................................... 113 fix_ampersands ....................................................................................................................................................................................................... 113 floatformat ................................................................................................................................................................................................................ 114 force_escape ........................................................................................................................................................................................................... 114 get_digit ................................................................................................................................................................................................................... 114 iriencode .................................................................................................................................................................................................................. 115 join ........................................................................................................................................................................................................................... 115 last ........................................................................................................................................................................................................................... 115 length ....................................................................................................................................................................................................................... 115 length_is .................................................................................................................................................................................................................. 115 linebreaks ................................................................................................................................................................................................................ 116 linebreaksbr ............................................................................................................................................................................................................. 116 linenumbers ............................................................................................................................................................................................................. 116 ljust .......................................................................................................................................................................................................................... 116 lower ........................................................................................................................................................................................................................ 117 make_list ................................................................................................................................................................................................................. 117 phone2numeric ........................................................................................................................................................................................................ 117 pluralize ................................................................................................................................................................................................................... 117 pprint ........................................................................................................................................................................................................................ 117 random .................................................................................................................................................................................................................... 117 removetags .............................................................................................................................................................................................................. 118 rjust .......................................................................................................................................................................................................................... 118 safe .......................................................................................................................................................................................................................... 118 safeseq .................................................................................................................................................................................................................... 118 slice ......................................................................................................................................................................................................................... 118 slugify ...................................................................................................................................................................................................................... 118 stringformat .............................................................................................................................................................................................................. 119 striptags ................................................................................................................................................................................................................... 119 time .......................................................................................................................................................................................................................... 119 timesince ................................................................................................................................................................................................................. 120 timeuntil ................................................................................................................................................................................................................... 120 title ........................................................................................................................................................................................................................... 121 truncatechars ........................................................................................................................................................................................................... 121 truncatewords .......................................................................................................................................................................................................... 121 truncatewords_html ................................................................................................................................................................................................. 121 unordered_list .......................................................................................................................................................................................................... 122 upper ....................................................................................................................................................................................................................... 122 urlencode ................................................................................................................................................................................................................. 122 urlize ........................................................................................................................................................................................................................ 123 urlizetrunc ................................................................................................................................................................................................................ 123 wordcount ................................................................................................................................................................................................................ Sommaire 3/125 www.siteduzero.com 123 wordwrap ................................................................................................................................................................................................................. 123 yesno ....................................................................................................................................................................................................................... Lire aussi 4/125 www.siteduzero.com Créez vos applications web avec Django Par Maxime Lorant (Ssx`z) et Mathieu Xhonneux (MathX) Mise à jour : 30/10/2012 Difficulté : Intermédiaire 804 visites depuis 7 jours, classé 148/796 Django « Le framework web pour les perfectionnistes sous pression » En quelques années, les sites web n'ont cessé d'évoluer. Ils requièrent désormais un développement long et acharné, sans oublier le fait que ceux-ci peuvent parfois devenir très complexes et se mesurer en milliers de lignes de code. Aujourd'hui, la simple page web ne suffit plus, et que ce soit en entreprise ou en amateur, les attentes sont de plus en plus lourdes. C'est de ce constat qu'est né Django : proposer un développement plus efficace, plus rapide d'une application dynamique web, tout en conservant la qualité ! Ce cours vous apprendra vous aussi à construire des sites web complexes et élégants, et en un temps record. Ce tutoriel nécessite des connaissances préalables dans les domaines suivants : Python : bonne maîtrise des bases, de la programmation orienté objet et des expressions régulières ; HTML/CSS : maîtrise de toute la partie HTML (nous ne parlerons pas de CSS) ; Si vous ne remplissez pas ces prérequis, nous ne pouvons que vous conseiller de les étudier avant d'entamer ce tutoriel. Ce cours porte sur la version 1.4 de Django, et n'assure nullement que toutes les méthodes de ce cours marcheront forcément sur des versions antérieures ou postérieures à la 1.4 Lire aussi 5/125 www.siteduzero.com Partie 1 : Présentation de Django Cette partie est avant tout introductive et théorique. Elle a pour but d'expliquer ce qu'est Django, son fonctionnement, la gestion d'un projet, etc... Créez vos applications web avec Django Django est un framework web écrit en Python. Avant de foncer sur son utilisation, nous allons tout d'abord voir dans ce chapitre ce qu'est un framework en général, ce qu'est Django et comment l'installer. Qu’est-ce qu’un framework ? Un framework est un ensemble d’outils qui simplifie le travail d’un développeur. Traduit littéralement de l’anglais, un framework est un « cadre de travail ». Il apporte les bases d’un programme ou d’un site web. Étant souvent identiques (un espace membre, ça reste un espace membre !), un développeur peut les réutiliser simplement et se concentrer sur l’essentiel de son projet. Il s’agit donc d’une pile de bibliothèques coordonnées, qui permettent à un développeur d’éviter de réécrire plusieurs fois une application, et donc de réinventer constamment la roue. Inutile de dire que le gain en énergie et en temps est conséquent ! Quels sont les avantages d'un framework ? Un framework instaure aussi en quelque sorte sa « ligne de conduite ». Tous les développeurs Django codent de façon assez homogène (leur code a le même fonctionnement, les mêmes principes), et tout développeur un tant soi peu expérimenté avec un framework qui rejoint un projet utilisant ce même framework sera donc directement familiarisé avec le code et pourra se mettre plus rapidement au travail. Le fait que chaque framework possède une structure commune pour tous ses projets amène une conséquence toute aussi intéressante : en utilisant un framework, votre code sera le plus souvent déjà organisé, propre et facilement réutilisable par autrui. V oilà d’ailleurs un grand challenge des frameworks : bien que ceux-ci doivent instaurer une structure commune, ils doivent aussi être souples et modulables, afin que ceux-ci puissent être utilisés pour une grande variété de projets, du plus banal au plus exotique. Autrement, leur intérêt en serait grandement limité ! Quels sont les désavantages d'un framework ? Honnêtement, il n'existe pas vraiment de désavantages à utiliser un framework. Il faut bien évidemment prendre du temps à apprendre à manier un, mais ce temps d'apprentissage est largement récupéré par la suite vu la vitesse de développement qui peut parfois être décuplée par l'utilisation d'un framework. On pourrait éventuellement dire aussi que certains framework sont parfois un peu trop lourds, mais il incombe à son utilisateur de choisir le bon framework, adapté à ses besoins. Qu’est-ce que Django ? Django est uploads/s1/ creez-vos-applications-web-avec-django.pdf

  • 36
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 10, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 2.6747MB