Tuto Python & Django : créer une page web

id 3571

Table des matières

Introduction

  1. Les Web Application Frameworks
  2. Pourquoi les frameworks d'applications Web sont-ils utiles?
  3. MVC dans les Frameworks d'applications Web
  4. Les meilleurs frameworks python
  5. Créez votre première page Web avec Django

5.1 Django

5.2 Installer Django

5.3 Initialisation du projet

5.4 Le serveur de développement

5.5 Création de l'application MaPage

5.6 Écrivez votre première vue

Conclusion

Introduction

Au moment de l’écriture de ces lignes, le paysage du développement Web est dominé par les outils JavaScript. Les Frameworks tels que ReactJS et AngularJS  sont très populaires, et de nombreuses choses qui étaient précédemment effectuées sur le serveur sont gérées côté client par ces Frameworks. Cela ne se limite pas au client. Les frameworks JavaScript côté serveur comme NodeJS sont également importants. Cela signifie-t-il que des langages comme Python devraient jeter l'éponge et oublier les applications Web? Au contraire, Python est un langage très puissant, facile à apprendre et offrant un rythme de développement rapide. Il dispose de nombreuses bibliothèques matures pour les tâches liées au Web, du mappage objet-relationnel (ORM) au scraping Web.

Python est également un fabuleux langage «glu» pour faire fonctionner ensemble des technologies disparates. À cette époque où les API JSON et la communication avec plusieurs systèmes sont si importantes, Python est un excellent choix pour le développement Web côté serveur. Et c'est également idéal pour les applications Web à grande échelle! Il existe de nombreux frameworks Web pour Python; certains offrent plus d'installations que d'autres et certains offrent une plus grande flexibilité ou une plus grande extensibilité. D’autres applications essaient de fournir tout ce dont vous avez besoin pour une application Web et nécessitent l'utilisation de composants très spécifiques, tandis que d'autres se concentrent sur le strict minimum pour que vous puissiez choisir uniquement les composants dont votre application a besoin.

1. Les Web Application Frameworks

Récemment, beaucoup de travail a été effectué pour développer des cadres destinés à aborder et à faciliter tous les aspects du développement d'applications Web. Le modèle MVC (Model-View-Controller) est couramment utilisé comme modèle architectural sous-jacent pour les frameworks, qui peut être utilisé pour produire très rapidement une application Web MVC complète. Cependant, ils imposent des limites et l'utilité ainsi de l'applicabilité  dépendent en fin de compte des exigences du système en cours de développement. L’un des avantages importants de l’utilisation d’un framework est que vous ne devez écrire qu’une quantité minimale de code pour être opérationnel. L'architecture de votre application Web offre également des avantages, car, en utilisant MVC, vous suivez un modèle couramment utilisé, puissant et bien vérifié.



2. Pourquoi les frameworks d'applications Web sont-ils utiles?

Un framework Web est une bibliothèque de codes qui rend le développement Web plus rapide et plus facile en donnant des modèles de base pour créer des applications Web fiables, évolutives et maintenables. Des frameworks Web existent pour faciliter la création d'une application Web par le développeur. Pensez-y comme un moyen de créer des raccourcis qui peuvent empêcher un code autrement écrasant et répétitif. Par exemple, vous avez peut-être écrit un code pour gérer la validation des données pour votre application Web. Afin d'éviter d'avoir à réécrire ce code à partir de zéro chaque fois que vous créez un site Web ou un service Web, le framework Web le fait pour vous.

Un framework Web diffère d'un serveur Web en ce qu'un serveur Web exécute réellement l'application Web, tandis que le framework Web ressemble plus à une base de données virtuelle ou à une bibliothèque qui permet d'accélérer le processus de développement et d'écriture.

Fonctionnalités communes du framework Web:

Les frameworks offrent des fonctionnalités dans leur code ou via des extensions pour effectuer les opérations quotidiennes nécessaires à l'exécution d'applications Web. Ces opérations impliquent:

  • Routage d'URL
  • Gestion et validation des formulaires de saisie
  • Configurations HTML, XML, JSON et autres produits avec un moteur de création de modèles
  • Configuration de la connexion à la base de données et résolution de la manipulation des données via un mappeur objet-relationnel (ORM)
  • Sécurité Web contre la falsification de requêtes intersites (CSRF), l'injection SQL, les scripts intersites (XSS) et d'autres attaques malveillantes fréquentes
  • Interprétation des requêtes (obtention des paramètres de formulaire, gestion des cookies et des sessions, ..)
  • Produire des réponses (présenter les données au format HTML ou dans d'autres formats, ..)
  • Stocker des données de manière persistante

3. MVC dans les Frameworks d'applications Web

Le modèle MVC est un modèle architectural développé à l'origine pour Smalltalk, un langage de programmation orientée objet (POO). Il permet la séparation nette de la logique de présentation, de la logique de contrôle et des objets métier. Des architectures et des frameworks intégrant des aspects du concept MVC sont apparus dans une multitude d'applications pour résoudre des problèmes nécessitant une couche de présentation non triviale. Les boîtes à outils et les frameworks utilisés pour développer la majorité des applications client pour les plates-formes Windows, Mac, Linux et UNIX intègrent en quelque sorte le concept MVC. De nombreuses variantes communes du concept ont été définies, et des approches pour appliquer MVC à une variété de problèmes ont été documentées à la fois d'une manière spécifique à la langue et indépendante de la langue. Le modèle MVC définit les trois composants principaux comme suit:

  • Vue: gère la sortie vers l'affichage (graphique ou textuel). Cela comprend la logique nécessaire pour créer les composants de l'interface utilisateur et utiliser le modèle pour charger les données dans les composants.
  • Contrôleur: gère les entrées clavier et souris de l'utilisateur. Le contrôle examine et interprète les entrées, puis transmet les commandes au modèle et / ou à la vue.
  • Modèle: gère les données et le traitement du domaine. Cela comprend l'établissement d'une représentation de persistance pour les données du domaine et les opérations qui peuvent être effectuées sur les données.

4. Les meilleurs frameworks python

Le framework Web Python est une collection de packages ou de modules qui permettent aux développeurs d'écrire des applications ou des services Web. Avec lui, les développeurs n'ont pas besoin de gérer les détails de bas niveau tels que les protocoles, les sockets ou la gestion des processus / threads.

Entre le meilleur framework python que nous ayons :

  • Django
  • TubroGears
  • Pylon
  • Bottle
  • CherryPy

Dans ce tutoriel, nous allons utiliser le framework Django pour créer une vue simple



5. Créez votre première page Web avec Django

5.1 Django

Django est sans aucun doute le framework Web le plus populaire pour Python au moment de la rédaction de cet article. Django est un framework de haut niveau, conçu pour répondre aux besoins les plus courants des applications Web. Django prend beaucoup de décisions pour vous, de la mise en page du code à la sécurité. Il est également très bien documenté, il est donc très facile de lancer rapidement un projet 31. Il existe également de nombreuses applications tierces qui peuvent parfaitement compléter ses nombreuses fonctionnalités.

Django est très bien adapté aux applications Web basées sur des bases de données. Non seulement il inclut son propre mappage objet-relationnel (ORM), mais il peut également générer une génération automatique de formulaires en fonction des schémas et même faciliter les migrations. Une fois vos modèles définis, une API Python riche peut être utilisée pour accéder à vos données. Django propose également une interface d'administration dynamique qui permet aux utilisateurs authentifiés d'ajouter, de modifier et de supprimer des objets. Cela permet de créer un beau site d'administration très tôt dans le cycle de développement, et de commencer à remplir les données et à tester les modèles pendant que les parties de l'application destinées à l'utilisateur prennent forme.

5.2 Installer Django

Prérequis :

  • Éditeur de texte: n'importe quel éditeur de texte comme Sublime Text ou Visual Studio Code peut être utilisé. Pour le projet suivant, Sublime Text est utilisé.
  • Python 3: La dernière version de Python peut être téléchargée dans Download Python.
  • Xampp ou Wamp

Exécutez cette commande dans votre cmd

Syntaxe :

pip install Django

Résultat d’exécution :

5.3 Initialisation du projet

Une fois que vous avez installé Django, il est facile de configurer un nouveau projet. Utilisez simplement le django-admin pour créer un squelette de projet vide. Choisissez un emplacement dans le système de fichiers pour code pour vivre. Notez que le code n'a pas besoin d'être dans la racine du document de votre serveur Web, et probablement ne devrait pas être là pour éviter tout problème de sécurité. Vous ne voulez certainement pas qu'une erreur de configuration du serveur se produise dans votre code source envoyé au navigateur Web

Exécutez cette commande sur un shell pour créer un nouveau projet appelé MonSiteDjango:

Syntaxe :

django-admin.py startproject  MonsiteDjango

Cela créera un répertoire MonSiteDjango dans votre répertoire actuel:

Résultat d’exécution :

Ces fichiers sont:

  • Le répertoire externe MonSiteDjango / root est un conteneur pour votre projet. Son nom n'a pas d'importance pour Django; vous pouvez le renommer comme vous le souhaitez.
  • manage.py: Un utilitaire de ligne de commande qui vous permet d'interagir avec ce projet Django de différentes manières. Vous pouvez lire tous les détails sur manage.py dans django-admin et manage.py.
  • Le répertoire interne MonSiteDjango / est le package Python réel pour votre projet. Son nom est le nom du package Python que vous devrez utiliser pour importer tout ce qu'il contient (par exemple, MonSite.urls).
  • MonSite / __ init__.py: Un fichier vide qui indique à Python que ce répertoire doit être considéré comme un package Python. Si vous êtes un débutant Python, en savoir plus sur les packages dans la documentation officielle Python.
  • MonSite / settings.py: Paramètres / configuration de ce projet Django. Les paramètres de Django vous diront tout sur le fonctionnement des paramètres.
  • MonSite / urls.py: Les déclarations d'URL pour ce projet Django; une «table des matières» de votre site alimenté par Django. Vous pouvez en savoir plus sur les URL dans le répartiteur d'URL.
  • MonSite / asgi.py: Un point d'entrée pour les serveurs Web compatibles ASGI pour servir votre projet.
  • MonSite / wsgi.py: Un point d'entrée pour les serveurs Web compatibles WSGI pour servir votre projet.

5.4 Le serveur de développement

Django est livré avec un serveur Web intégré très pratique pour le développement. Juste pour voir que tout fonctionne,  vérifions que votre projet Django fonctionne. Accédez au répertoire externe MonSiteDjango, si vous ne l'avez pas déjà fait, et exécutez les commandes suivantes:



Syntaxe :

python manage.py runserver

Résultat d’exécution :

Maintenant que le serveur est en cours d'exécution, visitez http://127.0.0.1:8000/ avec votre navigateur Web. Vous verrez un message "Félicitations!" page.

5.5 Création de l'application MaPage

Maintenant que votre environnement - un «projet» - est configuré, vous êtes prêt à commencer à travailler.

Chaque application que vous écrivez dans Django est constituée d'un package Python qui suit une certaine convention. Django est livré avec un utilitaire qui génère automatiquement la structure de répertoire de base d'une application, vous pouvez donc vous concentrer sur l'écriture de code plutôt que sur la création de répertoires.

Vos applications peuvent vivre n'importe où sur votre chemin Python. Dans ce didacticiel, nous allons créer notre application de sondage dans le même répertoire que votre fichier manage.py afin qu'elle puisse être importée comme son propre module de niveau supérieur, plutôt que comme un sous-module de mon site.

Pour créer votre application, assurez-vous que vous vous trouvez dans le même répertoire que manage.py et saisissez cette commande:

Syntaxe :

python manage.py startapp MaPage

Cela va créer un répertoire MaPage, qui se présente comme suit:

Résultat d’exécution :

5.6 Écrivez votre première vue

Écrivons la première vue. Ouvrez le fichier MaPage / views.py et mettez-y le code Python suivant:

Syntaxe :

from django.http import HttpResponse
def index(request):
return HttpResponse("Bienvenue sur ma première page Django.")

Ensuite, créez une configuration d'URL (appelée url.conf) en ajoutant un fichier nommé urls.py dans le répertoire Ma Page. Ajoutez le code suivant à MaPage/ urls.py et enregistrez le fichier.

Dans le fichier MaPage / urls.py, incluez le code suivant:

Syntaxe :

MaPage/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]

Ensuite, vous devrez modifier la configuration de l'url du site Web en éditant website / urls.py. Ajoutez le code suivant en bas:

Syntaxe :

from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('MaPage/', include('MaPage.urls')),
path('admin/', admin.site.urls),
]

Vous avez maintenant câblé une vue d'index dans l'URLconf. Vérifiez qu'il fonctionne avec la commande suivante:

Syntaxe :

python manage.py runserver

Accédez à http://127.0.0.1:8000/MaPage/ dans votre navigateur, et vous devriez voir le texte «Bienvenue sur ma première page python. », Que vous avez défini dans la vue d'index.

Résultat d’exécution :

Si votre navigateur Web renvoie un simple "Bienvenue sur ma première page python", vous avez créé avec succès votre application Django! Vous avez appris à démarrer un projet, à tester votre serveur et à créer une application fonctionnelle simple.

Conclusion

Django est un excellent choix pour tout développeur qui souhaite créer des applications Web modernes et robustes avec un minimum de code. Il est populaire, en cours de développement actif et testé de manière approfondie par les plus grands sites Web du monde. Dans le chapitre suivant, nous allons apprendre à configurer n'importe quel ordinateur pour le développement Django.



Ce tutoriel était juste une introduction au développement Web à l'aide d'un Framework Python, si vous voulez en savoir plus sur Django, visitez la documentation du Framework

Tutoriel Python