Créez vos applications web avec Flask Par FireZéro www.openclassrooms.com Licen
Créez vos applications web avec Flask Par FireZéro www.openclassrooms.com Licence Creative Commons 7 2.0 Dernière mise à jour le 7/03/2013 Sommaire 2 Sommaire ........................................................................................................................................... 1 Lire aussi ............................................................................................................................................ 3 Créez vos applications web avec Flask ............................................................................................. 3 Partie 1 : Introduction .......................................................................................................................... 4 Le Web .............................................................................................................................................................................. 4 Un serveur, des clients ................................................................................................................................................................................................ 5 Le protocole HTTP ...................................................................................................................................................................................................... 5 La requête ................................................................................................................................................................................................................... 5 La réponse .................................................................................................................................................................................................................. 6 Dernières notions ........................................................................................................................................................................................................ 8 Présentation de Flask ........................................................................................................................................................ 8 Présentation ................................................................................................................................................................................................................ 9 Possibilités .................................................................................................................................................................................................................. 10 La concurrence .......................................................................................................................................................................................................... 11 Installation et premiers pas .............................................................................................................................................. 11 Installation ................................................................................................................................................................................................................. 11 Sous Linux ................................................................................................................................................................................................................. 11 Sous Windows ........................................................................................................................................................................................................... 11 Sous Mac OS X ......................................................................................................................................................................................................... 11 Premiers pas ............................................................................................................................................................................................................. 12 Un peu d’explications ................................................................................................................................................................................................ 13 Jouons un peu avec ce code .................................................................................................................................................................................... 13 Le debugger en action ............................................................................................................................................................................................... 14 Partie 2 : Les bases de Flask ............................................................................................................ 15 Requêtes et Réponses .................................................................................................................................................... 15 Les requêtes .............................................................................................................................................................................................................. 15 Le chemin de la page demandée .............................................................................................................................................................................. 15 Filtrage des méthodes HTTP .................................................................................................................................................................................... 16 Les Routes ................................................................................................................................................................................................................ 19 Les réponses ............................................................................................................................................................................................................. 19 Changer le mimetype ................................................................................................................................................................................................ 20 Changer le code d'erreur HTTP ................................................................................................................................................................................ 21 Les redirections ......................................................................................................................................................................................................... 23 Les templates .................................................................................................................................................................. 24 Une fausse bonne idée... .......................................................................................................................................................................................... 24 La même page, en utilisant un template ................................................................................................................................................................... 25 Intégrer les fichiers CSS et Javascript ...................................................................................................................................................................... 26 Organisation des fichiers ........................................................................................................................................................................................... 26 Les templates, côté utilisateur ................................................................................................................................................................................... 26 Passer du contenu au template ................................................................................................................................................................................ 28 Afficher le contenu des variables .............................................................................................................................................................................. 30 Les conditions ........................................................................................................................................................................................................... 31 Les boucles ............................................................................................................................................................................................................... 32 Include ....................................................................................................................................................................................................................... 32 Le meilleur pour la fin : l'héritage .............................................................................................................................................................................. 34 Les templates, côté progammeur .............................................................................................................................................................................. 34 Rendre ses fonctions utilisables dans les templates ................................................................................................................................................. 34 Créer ses propres filtres ............................................................................................................................................................................................ 35 Créer ses propres tests ............................................................................................................................................................................................. 35 Créer des macros Jinja ............................................................................................................................................................................................. 37 Flash .......................................................................................................................................................................................................................... 37 flash() ........................................................................................................................................................................................................................ 37 get_flashed_message() ............................................................................................................................................................................................. 38 Flasher ses messages par catégories ...................................................................................................................................................................... 40 L'échange de données .................................................................................................................................................... 40 Introduction ................................................................................................................................................................................................................ 40 Les formulaires .......................................................................................................................................................................................................... 41 Les différents types de champs ................................................................................................................................................................................. 41 Upload de fichiers ..................................................................................................................................................................................................... 41 Les Query String ....................................................................................................................................................................................................... 42 Générer des query string avec url_for() .................................................................................................................................................................... 42 Route personnalisée ou query string ? ...................................................................................................................................................................... 43 Les cookies ............................................................................................................................................................................................................... 43 Récupérer les cookies qu'on avait confiés au client .................................................................................................................................................. 43 Stocker des cookies chez le client ............................................................................................................................................................................ 44 Les sessions ............................................................................................................................................................................................................. 46 [TP] Service Web d'upload d'images .............................................................................................................................. 46 Objectif ...................................................................................................................................................................................................................... 46 Avant de commencer ................................................................................................................................................................................................ 47 Solution ..................................................................................................................................................................................................................... 2/52 www.openclassrooms.com Créez vos applications web avec Flask Le tutoriel que vous êtes en train de lire est en bêta-test. Son auteur souhaite que vous lui fassiez part de vos commentaires pour l'aider à l'améliorer avant sa publication officielle. Notez que le contenu n'a pas été validé par l'équipe éditoriale du Site du Zéro. Par FireZéro Mise à jour : 07/03/2013 Difficulté : Intermédiaire Durée d'étude : 7 jours V ous avez appris le Python et aimeriez l’utiliser pour créer votre site web ? C’est possible ! Le langage Python est tout à fait adapté pour cela, et de nombreux frameworks peuvent vous simplifier la tâche. Je vous propose de découvrir l’un d’entre eux, Flask, qui a l'avantage d'être très simple à prendre en main. Ce tutoriel est accessible aux débutants, mais demande tout de même quelques pré-requis : connaître le langage Python (un tutoriel est disponible ici) connaître les langages HTML et CSS (tutoriel ici). Si vous ne les connaissez pas, vous pouvez néanmoins suivre les 4 premiers chapitres du cours, par curiosité. V oilà un petit exemple de ce que nous réaliserons durant ce cours : Sommaire 3/52 www.openclassrooms.com Partie 1 : Introduction Dans cette première partie nous allons découvrir en douceur le web ainsi que Flask. Le Web Avant d’attaquer l’apprentissage de Flask, attardons-nous un peu sur de la théorie : le fonctionnement des sites Web. Cette partie a beau n’être que théorique, elle est néanmoins très importante pour comprendre la suite : ne la négligez pas ! En effet, c’est maintenant que nous allons découvrir des notions que nous utiliserons par la suite grâce à Flask. Ces notions vous seront donc toujours utiles, que vous utilisiez Flask ou autre chose. Un serveur, des clients Pour commencer, disons qu'un site web n'est qu'un simple programme exécuté sur un ordinateur. Quand vous vous rendez sur ce site web, vous êtes ce qu'on appellera un client, et l'ordinateur où est exécuté ce site web est appelé le serveur. Quoi de plus simple qu’un beau schéma pour introduire le concept ? V oici donc un schéma représentant plusieurs clients se connectant à un serveur : V ous noterez que j’ai représenté les clients de la même manière que le serveur : par un ordinateur. En effet, il faut bien comprendre que n’importe quelle machine peut faire office de client ou de serveur. Durant notre apprentissage, nous utiliserons le même ordinateur pour faire les deux : le site web sera donc situé sur votre propre machine. Quand notre site sera prêt, nous pourrons le placer sur un serveur accessible au monde entier. Patience ! Qu’est-ce qui différencie un serveur d’un client dans ton schéma alors ? Le client et le serveur communiquent ensemble. Je ne l’ai pas représentée, mais la seule différence, c’est le logiciel utilisé pour la communication entre le client et le serveur. En effet, le client et le serveur n’utilisent pas le même logiciel ! Le client utilise un simple navigateur web (ça, vous devriez connaitre). Quant au serveur, le logiciel qu’il utilise (et qui lui permet de communiquer avec tous les clients en même temps) s’appelle un serveur HTTP. J’en profite pour compléter le schéma : Créez vos applications web avec Flask 4/52 www.openclassrooms.com Tout comme il existe plusieurs navigateurs web, il existe plusieurs serveurs HTTP. Le plus connu d’entre tous est Apache, mais il en existe de nombreux autres : peut être avez vous entendu parler de nginx, lighttpd, cherokee. Les serveurs HTTP peuvent évidemment fournir des pages web à plusieurs clients à la fois, et ils peuvent même contenir plusieurs sites web différents. Le protocole HTTP Réintéressons nous à notre schéma : il est encore incomplet. En effet, on a compris que les clients communiquaient avec le serveur, mais on ne sait pas comment. Ils utilisent pour cela le protocole HTTP. Pour simplifier, on pourrait dire que le client demande une page web, et que le serveur la lui renvoie, mais soyons un peu plus précis. La requête Quand le client “demande une page web”, en réalité, il envoie au serveur une requête qui contient : le chemin vers la page web demandée, évidemment un type. Les deux principaux sont GET et POST. Le type de requête POST est utilisé quand on valide un formulaire sur une page web. Le reste du temps, le type est GET. quelques informations (sur le type de navigateur notamment) et éventuellement, des données. Par exemple quand le visiteur valide un formulaire, il envoie les données remplies dans la requête POST. Mais on peut également envoyer des données avec une requête GET. La réponse Lorsque le serveur lui répond, il renvoie bien évidemment la page demandée, mais pas seulement ! Il renvoie aussi le type de la page renvoyée, appelé le mimetype (généralement, ce mimetype indique que la page est une page normale, contenant du HTML. Mais parfois, on souhaite renvoyer autre chose : une image, un fichier .doc, un pdf...), et il renvoie également qu'un code d’erreur. Par exemple, quand la page demandée est introuvable, on a le fameux code d’erreur 404. Mais il en existe de nombreux autres : L'erreur 500 désigne une erreur survenue sur le serveur (il faut espérer ne pas l’avoir, celle là ) L'erreur 401 désigne que l'accès à cette page web n'est pas autorisé L'erreur 400 signifie que la requête du client est mal formée (par exemple s'il n'envoie pas toutes les données d'un formulaire) L'erreur 200 signifie que... tout s’est bien passé Eh oui, quand tout se passe bien et que l’on renvoie la page au client, on précise quand même le code d’erreur. On peut donc finaliser notre schéma : Créez vos applications web avec Flask 5/52 www.openclassrooms.com Tout ça c’est bien beau, on sait comment client et serveur communiquent, mais dans tout ça, où est notre site web ? Eh bien, pour y accéder, on utilisera un navigateur, peu importe lequel. Et pour exécuter notre site web, où plutôt, pour le propulser (oui j'aime bien ce terme ), on utilisera un serveur HTTP. Il nous faudrait donc installer apache, par exemple. Mais en réalité, cela ne suffirait pas. Hé oui, je ne vous l’avais pas dit, mais les serveurs HTTP ne savent pas interpréter le Python ! Il nous faut donc ajouter à notre serveur HTTP un module pour rendre possible l’utilisation de Python, et donc de Flask. Je précise que ce problème est le même pour utiliser PHP ou Java : à chaque fois, il faut un module spécifique. Il y a plusieurs façons d’intégrer Python dans un serveur web. Pour faire court, sachez qu’il existe une norme appelée WSGI, que Flask respecte uploads/Management/ apprendre-flask.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 10, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.8957MB