Bibliothèques de développement Web Python - Guide rapide
Chaque fois qu'un utilisateur ouvre un navigateur Web comme Google Chrome ou Mozilla et recherche «Développement Web», des milliers de résultats apparaissent en un rien de temps. Qu'est-ce qui rend cela possible? Développement web! Il fait généralement référence au travail associé à la construction, à la création et à la maintenance de sites Web pour l'hébergement via intranet ou Internet. Les travaux associés à la conception de sites Web contiennent plusieurs domaines: programmation Web, gestion de bases de données, conception Web, publication Web, etc.
Le développement Web comprend tous les codes qui influencent l'exécution d'un site Web. Nous pouvons séparer l'ensemble du processus de développement Web en deux catégories -
- Front-end
- Back-end
Bien que le développement Web frontal et backend soient certainement distincts l'un de l'autre, ils sont également comme les deux faces d'une même pièce. Un site Web complet repose de chaque côté pour communiquer et fonctionner efficacement avec l'autre comme une seule unité. Le front-end et le back-end sont tout aussi importants dans le développement Web.
Le front-end ou côté client d'une application est le code responsable de tout ce que l'utilisateur expérimente directement à l'écran, des couleurs du texte aux boutons, images et menus de navigation. Certaines des compétences et outils courants utilisés par les développeurs frontaux sont répertoriés ci-dessous:
- HTML/CSS/JavaScript
- Préprocesseurs CSS
- Frameworks
- Libraries
- Git et Github
En règle générale, le back-end / côté serveur d'une application est responsable de la gestion des informations dans la base de données et de la diffusion de ces informations au front-end. Le back-end d'un site Web se compose d'un serveur, d'une application et d'une base de données. En général, cela implique tout ce qui se passe avant d'accéder à votre navigateur. Les outils nécessaires au développement web back-end sont:
Programming language - Ruby, PHP, Python, etc.
Database - MySQL, PostgreSQL, MongoDB, Oracle, etc.
Pourquoi le développement Web?
Dans le monde d'aujourd'hui, il existe plusieurs choix pour promouvoir votre entreprise ou vos compétences et partager vos idées. Certains d'entre eux sont la promotion par le biais de sites Web, d'applications natives sur les marchés, etc. La tendance à créer un nouveau site Web comme outil de développement commercial prend rapidement de l'ampleur dans le monde entier. Mais certains d'entre nous ne sont peut-être pas conscients de l'importance d'un site Web dans la croissance d'une entreprise.
Actuellement, de nombreuses start-up peinent à établir leur présence sur le marché libre. Cependant, il est également vrai que la plupart d'entre eux ne parviennent pas à gagner autant d'audience ciblée qu'ils le souhaitent. L'une des principales raisons qui les fait tomber est qu'ils sous-estiment le potentiel d'un site Web développé avec des fonctionnalités complètes pour gagner des affaires pour eux. Le développement de sites Web à des fins commerciales ou à toute autre fin peut s'avérer très fructueux.
Examinons quelques-unes des raisons importantes pour lesquelles le développement de sites Web est important pour la croissance de l'entreprise -
Atteindre votre public
Les sites Web en ligne peuvent atteindre le plus large public et ne sont pas limités à une plate-forme qui limite les applications natives. Les téléspectateurs ou les clients peuvent avoir un accès facile, c'est-à-dire d'un ordinateur de bureau / ordinateur portable à un appareil mobile, car les sites Web ont la capacité d'afficher le contenu via un navigateur Web.
Par rapport à une application native, la navigation Web est beaucoup plus simple car elle n'oblige pas les utilisateurs à accéder à l'App Store sur leurs appareils ou à télécharger leur application (qui peut inclure un ou plusieurs processus d'accès à votre contenu). La distribution de vos données est beaucoup plus flexible et agile avec les applications Web que les applications natives, car il n'y a pas d'exigences strictes en matière de magasin d'applications et de restrictions de contenu à suivre.
Un autre outil très utile pour le développement Web est la puissance de l'utilisation des techniques de référencement pour cibler votre public.
Accessible 24/7
Au lieu de créer un débouché physique pour l'entreprise, si le propriétaire de l'entreprise développe un site Web en tant que forum en ligne ou similaire, il y aura de bonnes chances de gagner une plus large audience en ligne pour établir des liens. C'est parce que la plupart des gens sont connectés à Internet toute la journée.
En règle générale, les gens préfèrent d'abord choisir le moyen le plus intelligent de vérifier en ligne, puis de prendre une décision. Ainsi, si le propriétaire de l'entreprise remplit tous les détails de base du produit et met en place un moyen sécurisé de le faire parvenir au client en temps opportun, les gens préféreront acheter en ligne au lieu de se rendre physiquement au point de vente. Cela permet également aux gens d'y accéder même à l'heure la plus étrange de la journée.
Commodité
Un site Web entièrement fonctionnel offre un plus grand avantage aux utilisateurs, où ils peuvent toujours se connecter et rechercher ce dont ils ont besoin. En règle générale, les utilisateurs évitent de se rendre physiquement dans les magasins s'ils ont la possibilité de le mettre en ligne. Donc, si vous êtes un homme d'affaires intelligent, vous préféreriez avoir tous les détails de vos produits ou de vos magasins sur le site Web uniquement pour gagner des affaires, ce que vous ne pourriez pas autrement.
Commercialisation globale
Avec un site Web en ligne, vous pouvez vous connecter à des forums sociaux et commercialiser votre produit / service auprès d'un vaste public partout dans le monde. Avec cela, vous pouvez régulièrement annoncer et partager votre travail sur des forums sociaux pour gagner beaucoup plus de place auprès du public ciblé.
Source crédible
Un portail en ligne est la plate-forme la plus fiable pour toute entreprise / organisation. Parfois, les sites Web officiels peuvent même fonctionner comme leur unique bureau. Prenons un scénario dans lequel il n'est pas facile d'accéder à l'emplacement physique d'une entreprise. Dans ce cas, vous pouvez surmonter cette inquiétude en vous concentrant sur leur site Web.
En bref, en développant un site Web, vous pouvez promouvoir vos services en quelques clics et vous pouvez attirer l'attention des consommateurs de différentes régions du monde. Le site Web d'une entreprise peut s'avérer remarquable pour gagner des affaires non seulement dans un temps plus court, mais aussi avec un public beaucoup plus large.
Python est l'un des langages les plus acceptables parmi les développeurs Web et d'applications en raison de son fort accent sur l'efficacité et la lisibilité. Il existe de nombreux frameworks Web Python exceptionnels, chacun avec ses propres spécialités et fonctionnalités.
Django
Ici, nous allons décrire quelques détails et fonctionnalités nécessaires du framework Django.
Category - Django appartient au framework Python full-stack.
Release - Dernière version - Version 2.1, version couramment utilisée - Version 1.8, 1.6.
About- Construit par des développeurs expérimentés, Django est un framework Web Python de haut niveau qui permet un développement de conception rapide, propre et pragmatique. Django gère une grande partie des complexités du développement Web, vous pouvez donc vous concentrer sur l'écriture de votre application sans avoir besoin de réinventer la roue. C'est gratuit et open source.
Pour mapper des objets à une table de base de données, Django utilise ORM et le même est utilisé pour transférer d'une base de données à une autre.
Il fonctionne avec la plupart des bases de données importantes comme Oracle, MySQL, PostgreSQL, SQLite, etc.
Il existe de nombreux sites Web dans l'industrie qui utilisent Django comme cadre principal pour le développement backend.
Caractéristiques de Django
Certaines des fonctionnalités exemplaires de ce framework Web Python sont:
- Routage d'URL
- Authentication
- Migrations de schéma de base de données
- ORM (mappeur objet-relationnel)
- Moteur de modèle
Le site Web officiel du framework Django est -https://www.djangoproject.com/
![](https://assets.edu.lat/python_web_development_libraries/images/django.jpg)
Ballon
Category - Flask appartient aux frameworks Non Full-stack.
Release - 1.0.2 publié le 02/05/2018
About- Il est classé comme un micro-framework car nous n'avons pas besoin de bibliothèques ou d'outils particuliers. Il n'a pas de couche de validation de formulaire ou d'abstraction de base de données ou de tout autre composant dans lequel des bibliothèques tierces préexistantes fournissent des fonctions communes. Cependant, flask prend en charge plusieurs extensions qui ont étendu les fonctionnalités de l'application comme si elles étaient implémentées dans Flask lui-même. Des extensions existent pour les mappeurs relationnels objet, la validation de formulaire, la gestion des téléchargements, diverses technologies d'authentification ouverte et plusieurs outils communs liés aux frameworks.
Caractéristiques de Flask
- Prise en charge intégrée des tests unitaires
- Répartition des demandes reposantes
- Contient un serveur de développement et un débogueur
- Utilise le modèle Jinja2
- Prise en charge des cookies sécurisés
- Unicode-based
- 100% conforme WSGI 1.0
- Documentation complète
- Compatibilité Google App Engine
- Extensions disponibles pour améliorer les fonctionnalités souhaitées
![](https://assets.edu.lat/python_web_development_libraries/images/flask.jpg)
Web2py
Category - Web2py appartient à la famille des frameworks Full-stack.
Release - 2.17.1, publié le 06/08/2018
About- Python 2.6, 2.7 vers la version Python 3.x. Sans autres dépendances, c'est un package complet en soi. Le développement, l'administration de la base de données, le débogage, le déploiement, les tests et la maintenance des applications peuvent tous être effectués via l'interface Web, mais ne sont généralement pas obligatoires. Il s'agit d'un framework open source évolutif qui est livré avec son propre IDE basé sur le Web, ainsi qu'un éditeur de code, un déploiement en un clic et un débogueur.
Fonctionnalités de Web2py
Ce cadre est livré avec de nombreux outils de développement et des fonctionnalités intégrées qui éliminent les tracas de la complexité pour les développeurs.
Sans installation ni configuration, il est facile à exécuter.
Prend en charge presque tous les principaux systèmes d'exploitation, tels que Windows, Unix / Linux, Mac, Google App Engine et presque toutes les plates-formes d'hébergement Web via Python 2.7 / 3.5 / 3.6 / version.
Facile à communiquer avec MySQL, MSSQL, IBM DB2, Informix, Ingres, MongoDB, SQLite, PostgreSQL, Sybase, Oracle et Google App Engine.
Il empêche les types de vulnérabilités les plus courants, notamment les scripts intersites, les failles d'injection et l'exécution de fichiers malveillants.
Prend en charge le suivi des erreurs et l'internationalisation.
Lisibilité de plusieurs protocoles.
Utilise des pratiques d'ingénierie logicielle réussies qui rendent le code facile à lire et à maintenir.
Assurez des progrès orientés utilisateur grâce à la compatibilité descendante.
![](https://assets.edu.lat/python_web_development_libraries/images/web2py.jpg)
Pyramide
Category - Pyramid est un Frameworks non Full Stack
Release - 1.9.2, publié le 23/04/2018
About- Pyramid est un petit framework Web Python rapide et terre-à-terre. Il est développé dans le cadre du projet Pylons. Il est autorisé sous une licence de type BSD. Cela rend le développement et le déploiement d'applications Web du monde réel plus amusants, plus prévisibles et plus productifs.
Caractéristiques de la pyramide
Python Pyramid est un framework open source avec les fonctionnalités suivantes -
Simplicity - N'importe qui peut commencer à travailler avec lui sans aucune connaissance préalable.
Minimalism - Tout à fait prêt à l'emploi, Pyramid est livré avec seulement quelques outils importants, qui sont nécessaires pour presque toutes les applications Web, que ce soit la sécurité ou la diffusion d'actifs statiques comme JavaScript et CSS ou l'attachement d'URL au code.
Documentation - Comprend une documentation exclusive et à jour.
Speed - Très rapide et précis.
Reliability- Il est développé en gardant à l'esprit qu'il est conservateur et testé de manière exhaustive. S'il n'est pas testé correctement, il sera considéré comme cassé.
Openness - Il est vendu avec une licence permissive et ouverte.
![](https://assets.edu.lat/python_web_development_libraries/images/pyramid.jpg)
Tiret
Category - Le framework Dash appartient à «d'autres» frameworks Web Python.
Release - 0.24.1, backend principal du tableau de bord.
About- Dash en tant que bibliothèque open source pour créer des visualisations Web interactives. L'équipe de plotly a créé Dash - un framework open source qui exploite Flask, React.js et plotly.js pour créer des applications de visualisation de données personnalisées. Le point fort de cette bibliothèque est que vous pouvez créer une application Web hautement interactive uniquement via du code Python. Les data scientists adorent le framework dash, en particulier tous ceux qui sont moins familiarisés avec le développement Web.
Avec Dash, les développeurs ont accès à toutes les propriétés configurables et à l'instance Flask sous-jacente. Les applications développées à l'aide du framework Dash peuvent être déployées sur des serveurs et sont finalement rendues dans le navigateur Web.
Les applications Dash sont intrinsèquement multiplateformes (Linux / Win / Mac) et adaptées aux mobiles et les capacités des applications peuvent être étendues par le riche ensemble de plugins Flask.
![](https://assets.edu.lat/python_web_development_libraries/images/dash.jpg)
Caractéristiques de Dash
- Fournit un accès aux propriétés configurables et à l'instance Flask
- Grâce aux plugins Flash, nous pouvons étendre les capacités de l'application Dash
- Mobile-ready
Dans ce chapitre, nous aborderons en détail Django Framework.
Django est un framework Web MVT utilisé pour créer des applications Web. L'énorme framework web Django est livré avec tellement de "batteries incluses" que les développeurs sont souvent surpris de voir comment tout fonctionne ensemble. Le principe derrière l'ajout de tant de batteries est d'avoir des fonctionnalités Web communes dans le cadre lui-même au lieu d'ajouter ces dernières en tant que bibliothèque séparée.
L'une des principales raisons de la popularité du framework Django est l'énorme communauté Django. La communauté est si énorme qu'un site Web distinct lui a été consacré où les développeurs de tous les coins ont développé des packages tiers comprenant l'authentification, l'autorisation, les systèmes CMS à part entière alimentés par Django, les modules complémentaires de commerce électronique, etc. Il y a une forte probabilité que ce que vous essayez de développer soit déjà développé par quelqu'un et il vous suffit de l'intégrer dans votre projet.
Pourquoi devriez-vous utiliser Django?
Django est conçu de manière à encourager les développeurs à développer des sites Web rapides, propres et pratiques. L'approche pratique de Django pour faire avancer les choses consiste à se démarquer de la foule.
Si vous envisagez de créer une application hautement personnalisable, telle qu'un site Web de médias sociaux, Django est l'un des meilleurs frameworks à considérer. La force de Django réside dans son interaction entre les utilisateurs ou sa capacité à partager différents types de médias. L'un des grands avantages de django est sa capacité à utiliser un large support communautaire qui vous donne des plugins tiers prêts à l'emploi hautement personnalisables dans vos applications.
Voici les dix principales raisons de choisir Django pour le développement Web -
Python
Python est sans doute l'un des langages de programmation les plus faciles à apprendre en raison de ses constructions de langage simples, de sa structure de flux et de sa syntaxe facile. Il est polyvalent et exécute des sites Web, des applications de bureau et des applications mobiles intégrées dans de nombreux appareils et est utilisé dans d'autres applications en tant que langage de script populaire.
Batteries incluses
Django est livré avec des bibliothèques communes qui sont essentielles pour créer des fonctionnalités communes telles que le routage d'URL, l'authentification, un mappeur objet-relationnel (ORM), un système de modèles et les migrations de schémas de base de données.
Admin intégré
Django a une interface d'administration intégrée qui vous permet de gérer vos modèles, les autorisations des utilisateurs / groupes et de gérer les utilisateurs. Avec l'interface de modèle en place, il n'est pas nécessaire de disposer d'un programme d'administration de base de données distinct pour toutes les fonctions de base de données, sauf les fonctions avancées.
Ne vous gêne pas
La création d'une application Django n'ajoute aucun passe-partout et aucune fonction inutile. Il n'y a pas d'importations obligatoires, de bibliothèques tierces et pas de fichiers de configuration XML.
Évolutif
Django est basé sur le modèle de conception MVC. Cela signifie que toutes les entités comme db (base de données), le code back-end et front-end sont des entités individuelles. Django nous permet de séparer le code des médias statiques, y compris les images, les fichiers, CSS et JavaScript qui composent votre site.
Django prend en charge une liste complète de bibliothèques tierces pour les serveurs Web, la mise en cache, la gestion des performances, la mise en cluster et l'équilibrage. L'un des avantages offerts par Django est la prise en charge des principales applications et services de messagerie et de messagerie comme ReST et OAuth.
Testé au combat
Django a été ouvert pour la première fois en 2005. Après 12 ans de croissance, Django gère désormais non seulement des sites Web de publication d'informations, mais gère également tout ou partie de grandes entreprises mondiales telles que Pinterest, Instagram, Disqus, Bitbucket, EventBrite et Zapier. Cela en fait un cadre Web robuste et fiable avec lequel travailler.
Support de paquet énorme
En raison de son large soutien communautaire et de son énorme réseau de développeurs, il y a de fortes chances que tout ce que vous avez l'intention de faire ait été fait auparavant. Une grande communauté internationale de développeurs contribue à la communauté en publiant leurs projets sous forme de packages open-source.
Un de ces référentiels de ces projets est le site Django Package. Actuellement, les packages Django répertorient plus de 3400 applications, sites et outils Django réutilisables à utiliser dans nos projets Django.
Développé activement
L'un des plus grands risques associés au projet open source est sa durabilité. Nous ne pouvons pas être sûrs si cela dure longtemps.
Il n'y a pas un tel risque avec Django car il a 12 ans. Ses versions cohérentes, ses versions plus récentes / meilleures et sa communauté active se développent chaque jour avec une grande équipe de base de contributeurs volontaires qui maintiennent et améliorent la base de code chaque jour.
Libérations stables
Les projets de logiciels open source comme Django sont, dans de nombreux cas, activement développés et plus sécurisés que les logiciels propriétaires concurrents, car de nombreux développeurs les développent et les testent chaque jour. Cependant, l'inconvénient d'un projet de logiciel open source est l'absence d'une base de code stable pour un développement commercialement viable.
Dans Django, nous avons des versions LTS (Long Term Support) du logiciel et un processus de publication défini, comme indiqué dans l'image ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/stable_releases.jpg)
Documentation de première classe
Dès la toute première version, les développeurs de Django ont veillé à ce que des documents complets appropriés soient disponibles et que les didacticiels soient faciles à comprendre.
Qui utilise Django?
En raison de la force unique de Django, il existe plusieurs sites Web populaires qui sont construits avec Python au-dessus du framework Django. Vous trouverez ci-dessous quelques-uns des principaux sites entièrement ou partiellement construits sur Django.
Disqus
C'est l'un des sites d'hébergement de commentaires de blog les plus préférés au monde. Il est facile à intégrer avec les CMS (systèmes de gestion de contenu) les plus populaires comme WordPress et bien d'autres via Disqus. Gérant une base d'utilisateurs de plus de 50 millions, Django est en mesure de satisfaire les propriétaires de sites pour qu'ils atteignent leurs communautés.
![](https://assets.edu.lat/python_web_development_libraries/images/disqus.jpg)
L'oignon
Le site Web Onion qui fournit un lieu en ligne pour leur journal satirique, Django en fournit le cadre.
![](https://assets.edu.lat/python_web_development_libraries/images/onion.jpg)
Bitbucket
Bitbucket est comme GitHub, un service d'hébergement de référentiel de contrôle de version. La seule différence entre Bitbucket et GitHub est que Bitbucket héberge des référentiels mercuriels alors que GitHub héberge des référentiels git. Comme des millions d'utilisateurs sont associés à Bitbucket, et que tous les services fournis par bitbucket (comme créer un dépôt, pousser votre code, ajouter des collaborateurs, commits, pull request, etc.) doivent être stables. Django est responsable de l'exécution du site bitbucket.
![](https://assets.edu.lat/python_web_development_libraries/images/bitbucket.jpg)
Instagram est une application de réseautage social spécialement conçue pour ceux qui aiment partager des photos et des vidéos avec tous leurs amis. Actuellement, il y a beaucoup de célébrités sur Instagram pour rester au plus près de leurs fans. Le framework Django exécute également Instagram.
![](https://assets.edu.lat/python_web_development_libraries/images/instagram.jpg)
Mozilla Firefox
Le deuxième navigateur le plus utilisé au monde après Google Chrome est le navigateur Mozilla. Maintenant, la page d'aide de Mozilla est construite avec le framework Django.
![](https://assets.edu.lat/python_web_development_libraries/images/mozilla_firefox.jpg)
Des millions d'utilisateurs à travers le monde découvrent leurs nouvelles idées et leur inspiration sur Pinterest. Pinterest utilise le framework Django (modifié selon leurs besoins) pour l'exécuter.
![](https://assets.edu.lat/python_web_development_libraries/images/pinterest.jpg)
NASA
Le site Web officiel de la National Aeronautics and Space Administration est un endroit où des millions d'utilisateurs peuvent visiter et consulter les nouvelles, les images, les vidéos et les podcasts fournis par l'agence de premier plan. Django développe certaines parties spécifiques du site officiel de la NASA.
![](https://assets.edu.lat/python_web_development_libraries/images/nasa.jpg)
Le Washington Post
S'il y a un journal influent dans le monde, c'est certainement le Washington Post. Le site Web du Washington Post est une source d'information en ligne extrêmement populaire pour accompagner leur quotidien. Son énorme quantité de vues et de trafic a été facilement gérée par le framework Web Django.
![](https://assets.edu.lat/python_web_development_libraries/images/washington_post.jpg)
Cadeaux Reddit
Le site Web très populaire de Reddit a lancé une plate-forme d'échange de cadeaux et de rencontre en ligne et anonyme appelée Reddit Gifts. Le site met en relation des utilisateurs du monde entier et facilite l'échange de cadeaux entre eux. Le framework web Django alimente ses fonctionnalités.
![](https://assets.edu.lat/python_web_development_libraries/images/reddit_gifts.jpg)
Prezi
Prezi est une alternative cloud à Microsoft PowerPoint basée sur le framework Django. Le site fournit une toile virtuelle qui peut être manipulée et agrandie et réduite. Cela fournit la vue complète de la présentation plutôt que des diapositives individuelles.
![](https://assets.edu.lat/python_web_development_libraries/images/prezi.jpg)
Installer et créer un projet et une application Django
Avant d'installer Django, nous devons nous assurer que Python est installé. En supposant que vous utilisez virtualenv, une simple installation de pip django devrait suffire.
Installation de l'environnement virtuel et de Django
Voici le processus pour installer l'environnement virtuel et Django dans votre environnement Windows -
![](https://assets.edu.lat/python_web_development_libraries/images/virtual_environment.jpg)
Pour vérifier si Django est correctement installé, tapez le code ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/install_django.jpg)
Créer un projet Django
Une fois l'installation terminée, nous devons créer un projet Django.
L'exécution de la commande ci-dessous dans votre machine Windows créera le projet django suivant -
django-admin startproject my_project_name
![](https://assets.edu.lat/python_web_development_libraries/images/django_project.jpg)
![](https://assets.edu.lat/python_web_development_libraries/images/creating_django_project.jpg)
Taper dir affichera un nouveau fichier et un nouveau répertoire comme indiqué ci-dessus.
manage.py- manage.py est un fichier Python exécutable en ligne de commande qui n'est qu'un wrapper autour de django-admin. Il nous aide à gérer notre projet qui est également impliqué dans son nom.
Avec cela, il a créé un répertoire appelé, myFirstDjangoProjectà l'intérieur de myFirstDjangoProject qui représente la racine de configuration de notre projet. Explorons-le beaucoup plus profondément.
Configurer Django
En appelant le répertoire myFirstDjangoProject «configuration root», nous voulons dire que ce répertoire contient les fichiers nécessaires à la configuration générale de notre projet Django. Pratiquement tout ce qui se trouve en dehors de ce répertoire sera uniquement axé sur la «logique métier» associée aux modèles, vues, itinéraires, etc. du projet. Tous les points qui relient le projet ensemble mèneront ici.
![](https://assets.edu.lat/python_web_development_libraries/images/configuring_django.jpg)
__init__.py - Ceci est vide et change le répertoire en un package Python importable.
settings.py - Comme son nom l'indique, c'est l'endroit où la plupart des éléments de configuration seront définis.
urls.py - Les URL sont définies avec urls.py. Avec cela, nous n'avons pas à écrire explicitement chaque URL du projet dans ce fichier. Cependant, nous devons indiquer à Django où les URL ont été déclarées (c'est-à-dire que nous devons lier d'autres URL dans urls.py).
Wsgi.py - Ceci est pour aider l'application en production et est similaire à d'autres applications comme Flask, Tornado, Pyramid qui expose un objet «app».
Définition des paramètres
Jetez un œil à settings.py révélera sa taille considérable - et ce ne sont que les valeurs par défaut. Les autres choses dont nous devons faire attention sont les fichiers statiques, la base de données, les fichiers multimédias, l'intégration au cloud ou d'autres dizaines de façons dont un projet Django peut être configuré. Comprenons quelques points mentionnés dans le fichier settings.py -
BASE_DIR- Ceci est utile pour localiser les fichiers. Dans le fichier setting.py, le paramètre BASE_DIR définit le chemin absolu vers le répertoire de base.
SECRET_KEY- Il est utilisé pour faire des hachages. En général, nous avons utilisé secret_key pour les cookies, les sessions, la protection csrf et les jetons d'authentification.
DEBUG - Nous pouvons le paramétrer pour projeter en cours de développement ou de production.
ALLOWED_HOSTS- Nous fournissons la liste des noms d'hôtes par lesquels notre application est servie. En mode développement, il est facultatif de définir; cependant, dans la machine de production, nous devons définir notre projet Django.
INSTALLED_APPS- C'est la liste des «applications» Django qui sont actuellement installées et exécutées dans notre projet Django. Django intégré fournit six applications installées comme suit -
'django.contrib.admin'
'django.contrib.auth'
django.contrib.
django.contrib.sessions
django.contrib.messages
django.contrib.staticfiles
MIDDLEWARE- Cela aide notre projet Django à fonctionner. C'est une classe python qui se connecte au traitement des requêtes / réponses de django.
TEMPLATES- Il définit comment le document doit être affiché dans le frontend. Les modèles Django sont utilisés pour produire n'importe quel format basé sur du texte.
WSGI_APPLICATION- Tout serveur que nous installons doit savoir où se trouve le fichier WSGI. Si vous utilisez un serveur externe, il recherchera ses propres paramètres. Par défaut, il pointe vers des objets dans wsgi.py.
DATABASES- Il définit les bases de données auxquelles notre projet Django accède actuellement. Il est obligatoire de définir la base de données par défaut. Dans le cas où nous définissons la base de données de notre choix, nous devons mentionner quelques éléments liés à la base de données comme: HÔTE, UTILISATEUR, MOT DE PASSE, PORT, NOM de la base de données et MOTEUR approprié.
STATIC_URL- C'est l'URL à utiliser pour faire référence aux fichiers statiques situés dans STATIC_ROOT. Par défaut, c'est None.
Cependant, nous pouvons avoir besoin d'ajouter un chemin pour les fichiers statiques. Descendez à la fin du fichier, et juste en dessous de l'entrée STATIC_URL, ajoutez-en une nouvelle appelée STATIC_ROOT comme indiqué ci-dessous -
myFirstDjangoProject/settings.py
STATIC_URL = '/ statique /'
STATIC_ROOT = os.path.join (BASE_DIR, 'statique')
Configurer une base de données
Il existe de nombreux logiciels de base de données différents qui peuvent stocker la date de votre site. Nous utiliserons celui par défaut, sqlite3.
Ceci est déjà configuré dans la partie ci-dessous de votre myFirstDjangoProject/settings.py -
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
Pour créer une base de données pour notre blog, exécutons ce qui suit dans la console - python manage.py migrate (nous devons être dans le répertoire myFirstDjangoProject qui contient le fichier manage.py.
Vous obtiendrez la sortie suivante si tout se passe bien -
![](https://assets.edu.lat/python_web_development_libraries/images/setting_up_database.jpg)
Démarrage du serveur Web
Vous devez être dans le répertoire qui contient le fichier manage.py. Dans la console, nous pouvons démarrer le serveur Web en exécutant python manage.py runserver comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/web_server.jpg)
Il ne vous reste plus qu'à vérifier que votre site Web fonctionne. Ouvrez votre navigateur (Firefox, Chrome, Safari, Internet Explorer ou tout ce que vous utilisez) et entrez cette adresse -
http://127.0.0.1:8000/
ou
http://localhost:8000/ # Comme notre serveur Web fonctionne uniquement sur notre machine locale.
Toutes nos félicitations! Vous venez de créer votre premier site Web et de l'exécuter à l'aide d'un serveur Web!
![](https://assets.edu.lat/python_web_development_libraries/images/starting_web_server.jpg)
Pendant que le serveur Web est en cours d'exécution, vous ne verrez pas de nouvelle invite de ligne de commande pour entrer des commandes supplémentaires. Le terminal acceptera le texte suivant mais n'exécutera pas de nouvelles commandes. Cela est dû au fait que le serveur Web fonctionne en permanence pour écouter les demandes entrantes.
Modèles Django
Nous essayons de créer un modèle Django qui stockera tous les articles de notre blog. Mais pour nous assurer que cela fonctionne, nous devons nous renseigner sur les objets.
Objets
Objects est une collection de propriétés et d'actions. Comprenons cela avec un exemple. Supposons que nous voulions modéliser un chat, nous allons créer un objet appelé Cat qui a des propriétés telles que la couleur, l'âge, l'humeur (bonne / mauvaise / somnolente) et le propriétaire.
Ensuite, le chat a quelques actions: ronronner, gratter ou nourrir.
Cat
--------
color
age
mood
owner
purr()
scratch()
feed(cat_food)
CatFood
--------
taste
Donc, fondamentalement, nous essayons de décrire des choses réelles dans le code avec des propriétés (appelées propriétés d'objet) et des actions (appelées méthodes).
Alors que nous construisons un blog, nous avons besoin d'un contenu textuel et d'un titre. Il est également nécessaire d'avoir le nom de l'auteur, la date de création ainsi que la date de publication.
Donc, notre blog aura les objets suivants -
Post
--------
title
text
author
created_date
published_date
Nous avons également besoin d'une méthode pour publier ce message. Comme nous savons maintenant ce qu'est un objet, nous pouvons créer un modèle Django pour notre article de blog.
Un modèle est un type d'objet spécial dans Django et est enregistré dans la base de données. Nous stockerons nos données dans la base de données SQLite.
Créer une application
Pour que tout soit clair, nous allons créer une application distincte dans notre projet. Ci-dessous, nous allons essayer de créer une application Web de blog en exécutant la commande simple mentionnée ci-dessous.
Maintenant, nous remarquerons qu'un nouveau répertoire myBlog est créé et qu'il contient maintenant un certain nombre de fichiers. Les répertoires et fichiers de notre projet doivent être les suivants -
![](https://assets.edu.lat/python_web_development_libraries/images/creating_application.jpg)
Après avoir créé une application, nous devons également dire à Django de l'utiliser. Nous faisons cela dans le fichier myFirstDjangoProject / settings.py.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myBlog',
]
Créer un modèle d'article de blog
dans le myBlog/models.py fichier, nous définissons tous les objets appelés Modèles - c'est un endroit dans lequel nous définirons notre article de blog.
Ouvrons myBlog / models.py, supprimons tout ce qu'il contient et écrivons le code comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/post_model.jpg)
Tout d'abord, nous importons certaines fonctionnalités à partir d'autres fichiers en appelant ou en les important. Donc avec cela, au lieu de copier et coller les mêmes choses dans chaque fichier, nous pouvons inclure certaines parties avecfrom and import.
class Post(models.Model) - Cette ligne définit notre modèle (c'est un objet).
class est un mot-clé spécial qui indique que nous définissons un objet.
Post est le nom de notre modèle. Commencez toujours un nom de classe par une lettre majuscule.
models.Model signifie que la publication est un modèle Django, donc Django sait qu'il doit être enregistré dans la base de données.
Parlons maintenant des propriétés que nous avons définies ci-dessus: titre, texte, date de création, date de publication et auteur. Pour ce faire, nous devons définir le type de chaque champ.
models.CharField - C'est ainsi que vous définissez du texte avec un nombre limité de caractères.
Models.TextField - Ceci est pour un texte long sans limite.
Models.DateTimeField - Ceci est pour la date et l'heure.
Models.ForeignKey - Ceci est un lien vers un autre modèle.
Nous définissons une fonction / méthode avec def et publier est le nom de la méthode.
Les méthodes renvoient souvent quelque chose. Ici, lorsque nous appelons __str __ (), nous obtiendrons un texte (chaîne) avec un titre de publication.
Création de tables pour les modèles dans votre base de données
La dernière étape consiste à ajouter un nouveau modèle à notre base de données. Tout d'abord, nous devons faire comprendre à Django que nous avons apporté quelques modifications à notre modèle. Faisons de même dans notre fenêtre de console avec la commandepython manage.py make migrations myBlog comme indiqué ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/migration.jpg)
Ensuite, Django prépare un fichier de migration que nous devons maintenant appliquer à notre base de données. Dans notre console, nous pouvons taper:python manage.py migrate myBlog et la sortie devrait être comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/creating_table.jpg)
Notre modèle Post est maintenant dans notre base de données.
Administrateur Django
Pour ajouter, modifier et supprimer les articles que nous venons de modéliser, nous utilisons l'admin Django.
Alors ouvrons le myBlog/admin.py file et mettez ci-dessous le contenu dans ce -
![](https://assets.edu.lat/python_web_development_libraries/images/django_admin.jpg)
Tout d'abord, nous importons (incluons) le modèle Post défini dans le chapitre précédent. Pour rendre notre modèle visible sur la page d'administration, nous devons enregistrer le modèle avec admin.site.register (Post).
Pour vous connecter à un site d'administration, vous devez créer un super-utilisateur - un compte d'utilisateur qui contrôle tout sur le site. Alors arrêtez le serveur web et tapez la ligne de commande pythonmanage.py createsuperuseret appuyez sur Entrée.
![](https://assets.edu.lat/python_web_development_libraries/images/create_user.jpg)
Ok, il est donc temps de regarder notre modèle Post. N'oubliez pas d'exécuter python manage.py run server dans la console pour exécuter le serveur Web. Accédez à votre navigateur et saisissez l'adressehttps://127.0.0.1:8000/admin/.Connectez-vous avec les informations d'identification que nous venons de choisir. Ensuite, vous devriez voir le tableau de bord d'administration de Django comme ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/run_server.jpg)
Allez dans Posts et expérimentez un peu avec. Vous pouvez ajouter de nombreux articles de blog et contenus de n'importe où. Votre blog ressemblera à ceci -
![](https://assets.edu.lat/python_web_development_libraries/images/django_administration.jpg)
Ceci n'est qu'un aperçu de Django et nous sommes capables de créer un blog avec seulement quelques lignes de code.
Flask est un micro-framework qui dépend très peu des bibliothèques externes. C'est un cadre très léger et nous donne la liberté de faire ce que nous voulons.
Dans ce chapitre, nous allons construire un projet en utilisant le framework Python et Flask.
Démarrage et configuration de Flask
Comme la plupart des bibliothèques python largement utilisées, le package Flask peut être installé à partir de Python Package Index (PPI). Créons d'abord un répertoire (Dans ce chapitre, nous avons créé un répertoire appeléflaskProject) a ensuite créé un environnement virtuel (et l'a appelé comme flaskEnv) où toutes les dépendances liées au projet seront chargées (y compris flask). Vous pouvez également installer flask-sqlalchemy afin que votre application flask dispose d'un moyen simple de communiquer avec la base de données SQL.
Après avoir installé le flask, votre flaskEnv (notre nom d'environnement virtuel) affichera quelque chose comme ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/flask_startup.jpg)
Créer une application avec flask
En installant flask, nous pouvons créer un simple "hello application in flask»Avec très peu de lignes de code comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/creating_flask.jpg)
Tapez ce qui suit dans le terminal -
$python flaskapp.py
Et vous pouvez voir la sortie suivante -
Courir sur http://127.0.0.1:5000/ ou sur localhost:5000
![](https://assets.edu.lat/python_web_development_libraries/images/running_localhost.jpg)
Vous trouverez ci-dessous l'explication de ce que nous avons fait dans notre exemple de code -
Tout d'abord, nous importons la bibliothèque de classes Flask. Une instance de cette classe est l'application WSGI.
Deuxièmement, nous créons une instance de cette classe. Le nom du package d'application ou du module est notre premier argument. Il est obligatoire que flask sache où trouver les fichiers statiques, les modèles et autres fichiers.
Vient ensuite le décorateur route () que nous utilisons pour savoir quelle URL doit déclencher notre méthode / fonction.
Créer un routage d'URL
Le routage d'URL facilite la mémorisation des URL de votre application Web. Nous allons maintenant créer des routes URL -
/hello
/members
/members/name
Nous pouvons écrire le code suivant basé sur l'URL ci-dessus et l'enregistrer sous app.py.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return "Index!"
@app.route('/Hello')
def hello():
return "Hello, World!"
@app.route("/members")
def members():
return "Members"
@app.route("/members/<name>/")
def getMember(name):
return name
if __name__ == '__main__':
app.run(debug=True)
$ python app.py
Running on http://localhost:5000/
Nous obtiendrons la sortie suivante dans notre navigateur -
![](https://assets.edu.lat/python_web_development_libraries/images/localhost_index.jpg)
Nous pouvons essayer d'autres URL dans notre navigateur comme suit -
Running on http://localhost:5000/hello, will give the following output −
![](https://assets.edu.lat/python_web_development_libraries/images/localhost_browser.jpg)
Running on http://localhost:5000/members, will give −
![](https://assets.edu.lat/python_web_development_libraries/images/localhost_members.jpg)
Running on http://localhost:5000/members/TutorialsPoint/, will give you the following output −
![](https://assets.edu.lat/python_web_development_libraries/images/localhost_tutorialspoint.jpg)
Mais normalement, nous ne voulons pas retourner une chaîne (comme ci-dessus), nous retournons des modèles. Pour cela, nous voulons utiliser une fonction "render_template”À partir de flask, et renvoie render_template avec une entrée. Donc, la fonction ci-dessous fera notre travail -
from flask import render_template
return render_template(‘home.html’)
Créons un modèle de dossier et placez-y le fichier home.html.
Ensuite, nous discuterons de la mise en page. Au lieu d'utiliser les balises head et body html pour chaque modèle, nous concevrons une mise en page pour inclure les balises head et body et envelopper les vues actuelles ou le modèle actuel. Pour cela, nous devons créer un fichier séparé et l'appelerlayout.html. En cela, nous pouvons mettre notre balise head normale, balise body et toutes les autres balises requises.
Nous pouvons créer notre nouveau layout.html avec les lignes de code suivantes -
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>MyFlaskApp</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
{% include 'includes/_navbar.html' %}
<div class="container">
{% block body %}
{% endblock %}
</div>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js">
</script>
</body>
</html>
Dans le code ci-dessus, nous avons donné la piste titre, MyFlaskAp, utilisez css cdn dans la tête et javascript dans le bloc de corps pour activer le bootstrap.
Maintenant, nous devons créer une barre de navigation pour chaque page. Pour cela, nous devons d'abord créer un dossier d'inclusion, puis créer un fichier _navbar.html à l'intérieur. Maintenant, dans le _navbar.html, nous devons utiliser le modèle de démarrage standard de getbootstrap.com. Le fichier _navbar.html nouvellement créé sera le suivant -
![](https://assets.edu.lat/python_web_development_libraries/images/navbar.jpg)
Et incluez ce fichier _navbar.html dans notre fichier layout.html.
{% include 'includes/_navbar.html' %}
Comme nous avons le bloc de mise en page, nous pouvons étendre ce bloc dans notre fichier home (home.html).
Notre fichier home.html peut être créé en utilisant le code ci-dessous -
{% extends 'layout.html' %}
{% block body %}
<div class="jumbotron text-center">
<h1>Welcome to FlaskApp</h1>
<p>This application is built on Flask webframework!</p>
</div>
{% endblock %}
En utilisant ceci si nous essayons d'exécuter notre fichier flaskapp.py, nous pourrions voir la sortie ci-dessous dans notre navigateur -
![](https://assets.edu.lat/python_web_development_libraries/images/welcome_flask.jpg)
Maintenant, nous voulons activer (actuellement les onglets ne fonctionnent pas) notre aboutlanguette. Créez une route pour l'onglet à propos et créez un fichier modèle,about.html.
À propos de la route des onglets dans appflask.py sera comme indiqué ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/about_tab.jpg)
Le fichier about.html aura le contenu ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/about_html.jpg)
Donc, Home et About sont maintenant pris en charge. Pour les articles, nous pouvons créer un nouveau fichier (data.py) dans le répertoire racine, où nous mettons les données et l'appelons dans notre page Web.
data.py
def Articles():
articles = [
{
'uid': 1,
'title': 'Article_One',
'body': 'Flask, being a microframework, often requires some repetitive step
to get a third party library working. Because very often these steps could
be abstracted to support multiple projects the Flask Extension Registry
was created.',
'Author': 'Rajesh Joshi',
'Created-on': '07-09-2018'
},
{
'uid': 2,
'title': 'Article_Two',
'body': "Flask, being a microframework, often requires some repetitive steps
to get a third party library working. Because very often these steps could
be abstracted to support multiple projects the Flask Extension Registry
was created.",
'Author': 'Rajesh J',
'Created-on': '07-09-2018'
},
{
'uid': 3,
'title': 'Article_Three',
'body': 'Flask, being a microframework, often requires some repetitive steps
to get a third party library working. Because very often these steps could be
abstracted to support multiple projects the Flask Extension Registry
was created.',
'Author': 'Joshi Rajesh',
'Created-on': '07-09-2018'
}
]
return articles
Ci-dessous le code pour articles.html, qui affichera les titres des articles pour chaque uid.
{% extends 'layout.html' %}
{% block body %}
<h1>Articles</h1>
{% for article in articles %}
<li class="list-group-item">
<a href="article/{{article.uid}}"> {{article.title}}</a>
</li>
{% endfor %}
{% endblock %}
Pour résumer, Flask est l'un des frameworks Web python les plus populaires en raison de sa légèreté. Bien qu'il soit micro, il s'agit d'un framework Web Python extensible. En fournissant les fonctionnalités requises, flask accélère le développement d'une application Web simple. Donc Flask est plus adapté aux applications plus petites et moins compliquées.
Web2py est un framework facile à utiliser. Avec web2py, aucune installation ni configuration n'est requise car il est portable et peut également être exécuté sur un lecteur USD. Il est basé sur les frameworks MVC comme de nombreux autres frameworks python. Bien que la plupart d'entre eux ne prennent pas en charge les anciennes versions de Python, web2py prend toujours en charge les anciennes versions: python 2.6 et 2.7. Il prend également en charge LDAP pour l'authentification, ce qui est largement accepté de nos jours.
Web2py tente d'abaisser la barrière d'entrée au développement Web en se concentrant sur trois objectifs principaux -
- Développement rapide
- Facilité d'utilisation
- Security
En gardant à l'esprit la perspective de l'utilisateur, Web2py est construit et constamment optimisé en interne pour en faire un cadre plus rapide et plus léger, y compris la prise en charge de la compatibilité descendante.
Installation et configuration du framework Web2py
Exécuter un web2py est facile, vous devez télécharger l'exe à partir du lien ci-dessous: http://www.web2py.com/init/default/download
Pour Windows, vous pouvez télécharger le fichier zip, le décompresser et exécuter le fichier exe directement ou à partir de la ligne de commande. L'écran ci-dessous vous demandera le mot de passe administrateur.
![](https://assets.edu.lat/python_web_development_libraries/images/web2py_framework.jpg)
Vous pouvez choisir un mot de passe administrateur et démarrer le serveur. Vous verrez l'écran suivant -
![](https://assets.edu.lat/python_web_development_libraries/images/administrator_password.jpg)
Créer une application à l'aide de Web2py
Nous sommes maintenant prêts à créer une nouvelle application. Cliquez sur l'onglet d'administration situé en bas. Donc, après avoir entré le mot de passe administrateur, nous obtiendrons l'écran ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/web2py_administration.jpg)
Accédez à une nouvelle application simple, entrez un nom d'application (comme helloWeb2py) et cliquez sur créer. Cela affichera la page de l'interface de conception comme indiqué ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/hello_web2py.jpg)
Vous pouvez également accéder à votre site Web en direct actuel, helloWeb2py, tapez simplement http://127.0.0.1:8000/helloWeb2py sur votre machine locale, vous obtiendrez la sortie ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/welcome_page.jpg)
Dans la page de conception de l'application helloWeb2py, accédez au contrôleur et cliquez sur le bouton Modifier à côté de default.py. Si vous modifiez la valeur de retour de la fonction index (), la sortie suivante sera affichée -
![](https://assets.edu.lat/python_web_development_libraries/images/index_page.jpg)
Enregistrez les modifications et vous pouvez maintenant vérifier les modifications apportées dans votre application helloWeb2py. Rafraîchissez simplement lehttp://127.0.0.1:8000/helloWeb2py lien et vous verrez la sortie ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/web2py_url.jpg)
Déployer l'application sur la plateforme cloud
Maintenant, si vous souhaitez déployer votre application sur une plateforme cloud, revenez sur votre page d'accueil et cliquez sur le site. Vous pouvez choisir n'importe quelle option de déploiement. Ici, nous choisissons «pythonAnywhere». Accédez au site Web pythonAnywhere et enregistrez-vous (si ce n'est déjà fait). Cliquer sur“Add a new web app”et remplissez toutes les informations d'identification (choisissez l'application web2py). Terminé.
Allez maintenant à https://username.pythonanywhere.com/welcome/default/index, cliquez sur l'onglet admin (entrez le mot de passe). Cliquez ensuite sur télécharger et installer l'application emballée. Remplissez les informations d'identification comme ci-dessous et cliquez sur installer.
![](https://assets.edu.lat/python_web_development_libraries/images/cloud_platform.jpg)
Une fois que tout est fait, un message pop-up apparaîtra comme indiqué ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/popup_message.jpg)
Maintenant, pour afficher votre application, ouvrez le lien ci-dessous -
https://username.pythonanywhere.com/welcome/default/index et vous pouvez voir l'écran suivant -
![](https://assets.edu.lat/python_web_development_libraries/images/deploying_app.jpg)
Notre première application web2py est créée et déployée avec succès.
Pour résumer, Web2py est un framework de développement Web gratuit, rapide et sécurisé, entièrement écrit en python et qui encourage l'utilisation de python de toutes les manières possibles (modèle, vue, contrôleur). C'est un très bon cadre pour les petites applications Web ou les prototypes, mais ne répond pas aux exigences de qualité de classe entreprise. C'est parce que, dans une application de niveau entreprise, la complexité de la résolution des bogues augmentera de façon exponentielle en raison du manque de tests unitaires, de rapports d'erreurs bons et précis et d'un modèle dispersé.
Pyramid est un cadre de développement d'applications Web général, open source, construit en python. Il permet aux développeurs python de créer facilement des applications Web.
Installation, mise en service et configuration
Comme décrit, «le début petit, finissez grand, restez le cadre terminé», Pyramid ressemble beaucoup à Flask qui demande très peu d'effort à installer et à exécuter. En fait, vous reconnaîtrez que certains des modèles sont similaires à Flask une fois que vous commencez à créer cette application.
Voici les étapes pour créer un environnement de structure pyramidale -
Commencez par créer un répertoire de projet. Ici, nous avons créé un répertoire nommépyramidProject (vous pouvez choisir le nom de votre choix).
Ensuite, créez un environnement virtuel dans lequel vous installerez toutes les dépendances spécifiques au projet. Ici, nous avons créé un dossier d'environnement virtuel nommépyramidEnv où Pyramid est installé.
Ensuite, allez dans le répertoire, pyramidEnv et installez la pyramide avec pip install pyramid.
Une fois que tout est fait comme mentionné ci-dessus, votre structure de répertoire sera comme indiqué ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/directory_structure.jpg)
Et la version pyramidale installée dans le système est donnée ci-dessous -
![](https://assets.edu.lat/python_web_development_libraries/images/pyramid_version.jpg)
Concepts de base
Le cadre Pyramid est basé sur les concepts de base ci-dessous -
Zope (extensibilité, traversée, sécurité déclarative) - Pyramid est vaguement basée sur Zope en termes d'extensibilité, le concept de traversée et la sécurité déclarative.
Pylons(Envoi d'URL, vision non avisée de la persistance, création de modèles, etc.) - Un autre domaine d'où la pyramide tire son concept est le projet pylônes. Les pylônes ont ce concept de routes, qui appelle la distribution d'URL à l'intérieur du cadre de la pyramide et ils ont également la vue sans opinion de la couche de persistance ou du modèle.
Django(Vue, niveau de documentation) - Pyramid obtient également un indice de Django. La façon dont nous prenons notre point de vue, achemine notre URL et le niveau de documentation est très Django.
Voici les caractéristiques du framework Pyramid -
Il s'agit du framework Web Python le plus connu.
Il prend en charge les petits et grands projets (pourquoi réécrire lorsque vous dépassez votre petit framework).
Il prend en charge les applications Web à fichier unique telles que les microframeworks.
Il a des sessions intégrées.
Il prend en charge les événements similaires à Plone / Zope.
Il fournit la gestion des transactions (si vous avez déjà remarqué que nous avons déjà utilisé Zope).
Configuration
La configuration correspond aux paramètres qui influencent le fonctionnement d'une application. Il existe deux façons de configurer une application pyramidale: la configuration impérative et la configuration déclarative.
Prise en charge de la configuration Pyramid -
Configuration impérative ou même le dépassement des configurations basées sur le décorateur
Détection des conflits de configuration (y compris une détermination plus locale ou moins locale)
Extensibilité de la configuration (incluse à partir de plusieurs applications)
Politiques d'authentification et d'autorisation flexibles
Introspection programmatique de la configuration (voir l'état actuel des routes pour générer la navigation)
Génération d'URL
Dans la pyramide, nous pouvons générer des URL pour les routes, les ressources et les actifs statiques. Il est facile et flexible de travailler avec des API de génération d'URL. En générant des URL via les différentes API de Pyramid, les utilisateurs peuvent modifier la configuration de manière arbitraire sans trop se soucier de rompre un lien avec l'une de vos pages Web.
Donc en bref, URL en pyramide -
prend en charge la génération d'URL pour permettre des modifications d'application qui ne rompent pas les liens.
génère des URL vers des ressources statiques qui vivent à l'intérieur ou à l'extérieur de l'application.
prend en charge les itinéraires et la traversée.
Vues
L'une des tâches principales de pyramid est de rechercher et d'appeler une vue appelable lorsqu'une requête atteint votre application. Les callables de vue sont des morceaux de code qui font quelque chose d'intéressant en réponse à une demande faite dans votre application.
Lorsque vous mappez vos vues sur votre distribution d'URL ou votre code python, il peut y avoir n'importe quel type d'appel. Les vues peuvent être une déclaration de fonction ou une instance, elles peuvent être utilisées comme vue dans la pyramide.
Quelques points importants sur les vues sont donnés ci-dessous -
Les vues sont générées à partir de tout appelable.
Les vues basées sur le moteur de rendu peuvent simplement renvoyer des dictionnaires (non requis pour renvoyer un objet de style Webby).
Prise en charge de plusieurs vues par route (GET vs POST vs vérification d'en-tête HTTP, etc.).
Afficher les adaptateurs de réponse (lorsque vous souhaitez spécifier comment les valeurs de retour de vue doivent être gérées par rapport aux objets de réponse).
Extensibilité
Pyramid est conçu avec l'extensibilité à l'esprit. Ainsi, si un développeur de pyramide garde à l'esprit certaines contraintes lors de la création d'une application, un tiers devrait être en mesure de modifier le comportement de l'application sans avoir à modifier son code source. Le comportement d'une application pyramidale qui obéit à certaines contraintes peut être remplacé ou étendu sans aucune modification. Il est conçu pour des déploiements flexibles dans plusieurs environnements (sans singletons). Pyramid prend en charge le middleware «Tweens» (middleware WSGI, mais fonctionne dans le contexte de Pyramid lui-même).
Exécution d'un programme Hello, Pyramid
Le programme le plus simple auquel on puisse penser après avoir installé le framework pyramid pour vérifier si tout fonctionne correctement est d'exécuter un simple programme «Hello, World» ou «Hello, Pyramid».
Ci-dessous mon programme pyramide «Hello, Pyramid» sur 8000 numéros de port -
![](https://assets.edu.lat/python_web_development_libraries/images/pyramid_program.jpg)
L'exemple ci-dessus simple est facile à exécuter. Enregistrez-le sous app.py (en cela, nous avons donné le nom pyramid_helloW.py).
Exécution du programme le plus simple: -
![](https://assets.edu.lat/python_web_development_libraries/images/running_program.jpg)
Ensuite, ouvrez http://localhost:8000/dans un navigateur, et vous verrez le Hello, Pyramid! Message comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/hello_pyramid.jpg)
Ce qui suit est l'explication du code ci-dessus -
Ligne no. 1-3
En tête du fichier, nous avons des instructions d'import. La première ligne importe la fonction make_server, qui peut créer un serveur Web simple lorsqu'il est passé à une application. La deuxième et la troisième ligne importent la configuration et la fonction de réponse à partir de la pyramide. Ces fonctions sont utilisées pour configurer les détails et définir les paramètres de l'application et répondre aux demandes, respectivement.
Ligne no. 5-6
Nous avons maintenant une définition de fonction appelée hello_world. Implémentez le code de vue qui génère la réponse. Une fonction qui remplit l'exigence d'une vue est responsable du rendu du texte qui sera renvoyé à l'entité demandeuse. Dans le cas ci-dessus, la fonction, lorsqu'elle est appelée, utilise la fonction Response que nous avons importée précédemment. Cela renvoie une valeur qui doit être donnée au client.
Ligne no. 8
if __name__ == '__main__': Python dit, "Commencez ici lors de l'exécution à partir de la ligne de commande", plutôt que lorsque ce module est importé.
Ligne no. 9-11
En ligne no. 9, nous créons une variable appelée config à partir de l'objet créé par la fonction de configuration que nous avons importée en haut du programme. Les lignes 10 et 11 appellent les méthodes add_route et add_view de cet objet. Cette méthode permet de définir une vue utilisable par l'application. Comme nous pouvons le voir, nous passons la fonction hello_world que nous avons définie précédemment. C'est là que cette fonction est réellement incorporée en tant que vue.
Ligne no. 12-14
En cela, nous créons en fait l'application WSGI en appelant la méthode make_wsgi_app de l'objet de configuration. Cela utilise les attributs de l'objet, tels que la vue que nous avons ajoutée, pour créer une application. Cette application est ensuite passée à la fonction make_server que nous avons importée afin de créer un objet pouvant lancer un serveur web pour servir notre application. La dernière ligne lance ce serveur.
Notre hello world applicationest l'une des applications pyramidales les plus simples et les plus simples possibles, configurée «impérativement». C'est impératif car toute la puissance de Python est à notre disposition lorsque nous effectuons des tâches de configuration.
Pour résumer, Pyramid est un framework Web Python open source avec une communauté nombreuse et active. Cette grande communauté contribue à rendre le framework web python populaire et pertinent. Le framework Web Pyramid simplifie et accélère le développement d'applications Web en fournissant un ensemble de fonctionnalités et d'outils robustes.
Dans ce chapitre, nous aborderons en détail le framework Dash.
Dash est un framework Python open source utilisé pour créer des applications Web analytiques. C'est une bibliothèque puissante qui simplifie le développement d'applications basées sur les données. C'est particulièrement utile pour les scientifiques de données Python qui ne sont pas très familiarisés avec le développement Web. Les utilisateurs peuvent créer des tableaux de bord étonnants dans leur navigateur à l'aide du tableau de bord.
Construit au-dessus de Plotly.js, React et Flask, Dash associe des éléments d'interface utilisateur modernes tels que des listes déroulantes, des curseurs et des graphiques directement à votre code Python analytique.
Les applications Dash se composent d'un serveur Flask qui communique avec les composants React frontaux à l'aide de paquets JSON via des requêtes HTTP.
Les applications Dash sont écrites uniquement en python, donc AUCUN HTML ou JavaScript n'est nécessaire.
Configuration du tableau de bord
Si Dash n'est pas déjà installé sur votre terminal, installez les bibliothèques Dash mentionnées ci-dessous. Comme ces bibliothèques sont en cours de développement actif, installez et mettez à niveau fréquemment. Python 2 et 3 sont également pris en charge.
- pip install dash == 0.23.1 # Le backend principal du tableau de bord
- pip install dash-renderer == 0.13.0 # Le front-end du tableau de bord
- pip install dash-html-components == 0.11.0 # composants HTML
- pip install dash-core-components == 0.26.0 # Composants suralimentés
- pip install plotly == 3.1.0 # Bibliothèque graphique de tracé
Afin de nous assurer que tout fonctionne correctement, ici, nous avons créé un simple fichier dashApp.py.
Mise en page du tableau de bord ou de l'application
Les applications Dash sont composées de deux parties. La première partie est la «mise en page» de l'application qui décrit essentiellement à quoi ressemble l'application. La deuxième partie décrit l'interactivité de l'application.
Composants principaux
Nous pouvons créer la mise en page avec le dash_html_components et le dash_core_componentsbibliothèque. Dash fournit des classes python pour tous les composants visuels de l'application. Nous pouvons également personnaliser nos propres composants avec JavaScript et React.js.
importer dash_core_components en tant que dcc
importer dash_html_components au format HTML
Le dash_html_components est pour toutes les balises HTML où le dash_core_components est pour l'interactivité construite avec React.js.
En utilisant les deux bibliothèques ci-dessus, écrivons un code comme indiqué ci-dessous -
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''Dash Framework: A web application framework for Python.''')
Et le code HTML équivalent ressemblerait à ceci -
<div>
<h1> Hello Dash </h1>
<div> Dash Framework: A web application framework for Python. </div>
</div>
Ecrire l'application Simple Dash
Nous allons apprendre à écrire un exemple simple sur le tableau de bord en utilisant la bibliothèque mentionnée ci-dessus dans un fichier dashApp.py.
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''Dash Framework: A web application framework for Python.'''),
dcc.Graph(
id='example-graph',
figure={
'data': [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'Delhi'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Mumbai'},
],
'layout': {
'title': 'Dash Data Visualization'
}
}
)
])
if __name__ == '__main__':
app.run_server(debug=True)
Lancer l'application Dash
Notez les points suivants lors de l'exécution de l'application Dash.
(MyDjangoEnv) C: \ Users \ rajesh \ Desktop \ MyDjango \ dash> python dashApp1.py
Application Flask "dashApp1" (chargement différé)
Environnement: production
AVERTISSEMENT: n'utilisez pas le serveur de développement dans un environnement de production.
Utilisez plutôt un serveur WSGI de production.
Mode de débogage: activé
Redémarrer avec stat
Le débogueur est actif!
Code PIN du débogueur: 130-303-947
Courir sur http://127.0.0.1:8050/ (Appuyez sur CTRL + C pour quitter)
127.0.0.1 - - [12/Aug/2018 09:32:39] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [12/Aug/2018 09:32:42] "GET /_dash-layout HTTP/1.1" 200 -
127.0.0.1 - - [12/Aug/2018 09:32:42] "GET /_dash-dependencies HTTP/1.1" 200 -
127.0.0.1 - - [12/Aug/2018 09:32:42] "GET /favicon.ico HTTP/1.1" 200 -
127.0.0.1 - - [12/Aug/2018 09:39:52] "GET /favicon.ico HTTP/1.1" 200 -
Visite http:127.0.0.1:8050/dans votre navigateur Web. Vous devriez voir une application qui ressemble à ceci.
![](https://assets.edu.lat/python_web_development_libraries/images/hello_dash.jpg)
Dans le programme ci-dessus, quelques points importants à noter sont les suivants -
La mise en page de l'application est composée d'un arbre de «composants» comme html.Div et dcc.Graph.
La bibliothèque dash_html_components a un composant pour chaque balise HTML. Le composant html.H1 (children = 'Hello Dash') génère un élément HTML <h1> Hello Dash </h1> dans votre application.
Tous les composants ne sont pas du HTML pur. Les dash_core_components décrivent des composants de niveau supérieur qui sont interactifs et générés avec JavaScript, HTML et CSS via la bibliothèque React.js.
Chaque composant est entièrement décrit par des attributs de mots clés. Dash est déclaratif: vous décrirez principalement votre application à travers ces attributs.
La propriété des enfants est spéciale. Par convention, c'est toujours le premier attribut, ce qui signifie que vous pouvez l'omettre.
Html.H1 (children = 'Hello Dash') est identique à html.H1 ('Hello Dash').
Les polices de votre application seront un peu différentes de celles affichées ici. Cette application utilise une feuille de style CSS personnalisée pour modifier les styles par défaut des éléments. Le style de police personnalisé est autorisé, mais à partir de maintenant, nous pouvons ajouter l'URL ci-dessous ou n'importe quelle URL de votre choix -
app.css.append_css ({"external_url":https://codepen.io/chriddyp/pen/bwLwgP.css}) pour que votre fichier ait la même apparence que ces exemples.
En savoir plus sur HTML
La bibliothèque dash_html_components contient une classe de composant pour chaque balise HTML ainsi que des arguments de mot-clé pour tous les arguments HTML.
Ajoutons le style en ligne des composants dans notre texte d'application précédent -
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
colors = {
'background': '#87D653',
'text': '#ff0033'
}
app.layout = html.Div(style={'backgroundColor': colors['background']}, children=[
html.H1(
children='Hello Dash',
style={
'textAlign': 'center',
'color': colors['text']
}
),
html.Div(children='Dash: A web application framework for Python.', style={
'textAlign': 'center',
'color': colors['text']
}),
dcc.Graph(
id='example-graph-2',
figure={
'data': [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'Delhi'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Mumbai'},
],
'layout': {
'plot_bgcolor': colors['background'],
'paper_bgcolor': colors['background'],
'font': {
'color': colors['text']
}
}
}
)
])
if __name__ == '__main__':
app.run_server(debug=True)
Dans l'exemple ci-dessus, nous avons modifié les styles en ligne des composants html.Div et html.H1 avec la propriété style.
![](https://assets.edu.lat/python_web_development_libraries/images/style_property.jpg)
Il est rendu dans l'application Dash comme suit -
![](https://assets.edu.lat/python_web_development_libraries/images/data_application.jpg)
Il existe quelques distinctions clés entre dash_html_components et les attributs HTML -
Pour la propriété de style dans Dash, vous pouvez simplement fournir un dictionnaire, alors qu'en HTML, il s'agit d'une chaîne séparée par des points-virgules.
Les clés du dictionnaire de style sont camelCased, donc l'alignement du texte devient textalign.
ClassName dans Dash est similaire à l'attribut de classe HTML.
Le premier argument est les enfants de la balise HTML qui est spécifiée via l'argument mot-clé children.
Composants réutilisables
En écrivant notre balisage en Python, nous pouvons créer des composants réutilisables complexes comme des tables sans changer de contexte ou de langage -
Vous trouverez ci-dessous un exemple rapide qui génère une «table» à partir du dataframe pandas.
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
df = pd.read_csv(
'https://gist.githubusercontent.com/chriddyp/'
'c78bf172206ce24f77d6363a2d754b59/raw/'
'c353e8ef842413cae56ae3920b8fd78468aa4cb2/'
'usa-agricultural-exports-2011.csv')
def generate_table(dataframe, max_rows=10):
return html.Table(
# Header
[html.Tr([html.Th(col) for col in dataframe.columns])] +
# Body
[html.Tr([
html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
]) for i in range(min(len(dataframe), max_rows))]
)
app = dash.Dash()
app.layout = html.Div(children=[
html.H4(children='US Agriculture Exports (2011)'),
generate_table(df)
])
if __name__ == '__main__':
app.run_server(debug=True)
Notre sortie sera quelque chose comme -
![](https://assets.edu.lat/python_web_development_libraries/images/reusable_components.jpg)
En savoir plus sur la visualisation
La bibliothèque dash_core_components comprend un composant appelé Graph.
Graph rend des visualisations de données interactives à l'aide de la bibliothèque graphique JavaScript open source plotly.js. Plotly.js prend en charge environ 35 types de graphiques et rend les graphiques à la fois en SVG de qualité vectorielle et en WebGL haute performance.
Voici un exemple qui crée un nuage de points à partir d'une trame de données Pandas -
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objs as go
app = dash.Dash()
df = pd.read_csv(
'https://gist.githubusercontent.com/chriddyp/' +
'5d1ea79569ed194d432e56108a04d188/raw/' +
'a9f9e8076b837d541398e999dcbac2b2826a81f8/'+
'gdp-life-exp-2007.csv')
app.layout = html.Div([
dcc.Graph(
id='life-exp-vs-gdp',
figure={
'data': [
go.Scatter(
x=df[df['continent'] == i]['gdp per capita'],
y=df[df['continent'] == i]['life expectancy'],
text=df[df['continent'] == i]['country'],
mode='markers',
opacity=0.7,
marker={
'size': 15,
'line': {'width': 0.5, 'color': 'white'}
},
name=i
) for i in df.continent.unique()
],
'layout': go.Layout(
xaxis={'type': 'log', 'title': 'GDP Per Capita'},
yaxis={'title': 'Life Expectancy'},
margin={'l': 40, 'b': 40, 't': 10, 'r': 10},
legend={'x': 0, 'y': 1},
hovermode='closest'
)
}
)
])
if __name__ == '__main__':
app.run_server()
La sortie du code ci-dessus est la suivante -
![](https://assets.edu.lat/python_web_development_libraries/images/visualization.jpg)
Ces graphiques sont interactifs et réactifs. Vous pouvez survoler les points pour voir leurs valeurs, cliquer sur les éléments de légende pour faire basculer les traces, cliquer et faire glisser pour zoomer, maintenir la touche Maj enfoncée et cliquer et faire glisser pour faire un panoramique.
Réduction
Alors que dash expose les saveurs HTML via la bibliothèque dash_html_components, il peut être fastidieux d'écrire votre copie en HTML. Pour écrire des blocs de textes, vous pouvez utiliser le composant Markdown dans la bibliothèque dash_core_components.
Composants principaux
Le dash_core_components comprend un ensemble de composants de plus haut niveau tels que des listes déroulantes, des graphiques, des démarques, des blocs et bien d'autres.
Comme tous les autres composants Dash, ils sont décrits de manière entièrement déclarative. Chaque option configurable est disponible en tant qu'argument mot-clé du composant.
Voici l'exemple, en utilisant certains des composants disponibles -
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div([
html.Label('Dropdown'),
dcc.Dropdown(
options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': u'Montréal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
value='MTL'
),
html.Label('Multi-Select Dropdown'),
dcc.Dropdown(
options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': u'Montréal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
value=['MTL', 'SF'],
multi=True
),
html.Label('Radio Items'),
dcc.RadioItems(
options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': u'Montréal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
value='MTL'
),
html.Label('Checkboxes'),
dcc.Checklist(
options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': u'Montréal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
values=['MTL', 'SF']
),
html.Label('Text Input'),
dcc.Input(value='MTL', type='text'),
html.Label('Slider'),
dcc.Slider(
min=0,
max=9,
marks={i: 'Label {}'.format(i) if i == 1 else str(i) for i in range(1, 6)},
value=5,
),
], style={'columnCount': 2})
if __name__ == '__main__':
app.run_server(debug=True)
La sortie du programme ci-dessus est la suivante -
![](https://assets.edu.lat/python_web_development_libraries/images/core_components.jpg)
Appeler l'aide
Les composants Dash sont déclaratifs. Chaque aspect configurable de ces composants est défini lors de l'installation en tant qu'argument de mot-clé. Vous pouvez appeler l'aide de votre console Python sur l'un des composants pour en savoir plus sur un composant et ses arguments disponibles. Certains d'entre eux sont donnés ci-dessous -
>>> help(dcc.Dropdown)
Help on class Dropdown in module builtins:
class Dropdown(dash.development.base_component.Component)
| A Dropdown component.
| Dropdown is an interactive dropdown element for selecting one or more
| items.
| The values and labels of the dropdown items are specified in the `options`
| property and the selected item(s) are specified with the `value` property.
|
| Use a dropdown when you have many options (more than 5) or when you are
| constrained for space. Otherwise, you can use RadioItems or a Checklist,
| which have the benefit of showing the users all of the items at once.
|
| Keyword arguments:
| - id (string; optional)
| - options (list; optional): An array of options
| - value (string | list; optional): The value of the input. If `multi` is false (the default)
-- More --
Pour résumer, la disposition d'une application Dash décrit à quoi ressemble l'application. La mise en page est une arborescence hiérarchique de composants. La bibliothèque dash_html_components fournit des classes pour toutes les balises HTML et les arguments de mot-clé, et décrit les attributs HTML tels que style, className et id. La bibliothèque dash_core_components génère des composants de plus haut niveau tels que des contrôles et des graphiques.
Le monde des frameworks Web Python offre de nombreux choix. Certains des principaux frameworks à considérer sont Django, Flask, Bottle, Diesel, Web2py, Pyramid, Falcon, Pecan, etc., qui se disputent l'esprit du développeur. Les cadres comme Pyramid, Django, Web2py et Flask sont idéaux avec leur liste d'avantages et d'inconvénients; en choisir un seul pour votre projet est un choix difficile à faire.
Dash est entièrement conçu pour différents ensembles de besoins. Donc, en tant que développeur, vous voulez réduire les légions d'options à celle qui vous aidera à terminer votre projet à temps et avec perfection.
Si nous comparons les frameworks Flask, Pyramid et Django, Flask est un micro-framework principalement destiné aux petites applications avec des exigences plus simples alors que Pyramid et Django sont tous deux destinés à des applications plus grandes. Pyramid est construit avec la flexibilité et la liberté à l'esprit, de sorte que le développeur dispose des bons outils pour le projet. En cas de pyramide, le développeur est libre de choisir la base de données, la structure de l'URL, le style de modèle et plus encore. Cependant, Django inclut toutes les batteries dont une application Web a besoin, il nous suffit donc d'installer Django et de commencer à travailler.
Django est livré avec un ORM, tandis que Pyramid et Flask laissent au développeur le soin de choisir comment (ou si) il souhaite que ses données soient stockées. Généralement, l'ORM le plus courant pour les applications Web non Django est de loin SQLAlchemy, cependant, d'autres options peuvent être DjangoDB, MongoDB, LevelDB et SQLite.
Étant développeur, si je dois choisir entre Django et Web2py pour mon projet. J'ai besoin d'avoir une idée des avantages et des limites des cadres. Alors comparons Django et Web2py -
Django
La communauté de Django est un gros plus. Cela signifie en fait pour un développeur que la richesse des ressources sera plus grande. Plus précisément, cela revient à -
- Documentation
- Ressources open source
- Prise en charge des applications tierces
- Aide au déploiement
- Canaux IRC avec des développeurs utiles
Django a une très grande communauté d'équipe de développement et de documentation. C'est le bon framework lorsqu'il s'agit d'écrire un backend complexe car il fournit de nombreuses applications tierces qui vous permettent d'automatiser des choses comme la logique de l'utilisateur (inscription, authentification), les tâches asynchrones, la création d'API, les blogs, etc.
Web2py
Web2py convient parfaitement au développement rapide d'applications Web simples ou de serveurs http. Voici quelques-uns des avantages et des limites de web2py.
Avantages de Web2py
Voici quelques-uns des avantages du framework Web2py -
Web2py est un framework potentiel par rapport à Django et Flask en termes de rapidité et de simplicité de développement. Comme Web2py utilise un langage de modèle basé sur python, cela permet aux développeurs Python de commencer à écrire du code immédiatement après avoir compris les bases de l'écriture de modèle sous forme de vues.
Web2py peut exécuter du code compilé python en tant qu'optimisation pour réduire le temps d'exécution et vous permettre de distribuer votre code de manière compilée.
Limitations de Web2py
Voici quelques-unes des limites du cadre:
Web2py prend en charge les doctests, mais il ne prend pas en charge les tests unitaires. Or, les doctests ne sont pas le choix optimal en raison de leur portée limitée.
Il n'y a pas de différenciation entre le mode de production et le mode de développement. En cas d'exception, le ticket est généré à tout moment et vous devrez naviguer vers le ticket pour vérifier l'erreur. Cela peut être utile dans le cas d'un serveur de production mais sera difficile dans l'environnement de développement car les développeurs ont vraiment besoin de voir l'erreur instantanément plutôt que de vérifier le numéro de ticket.
Web2py a une bonne couche d'abstraction de base de données (DAL) qui vous permet d'abstraire de nombreux types de moteurs de base de données, mais il manque un ORM puissant. Dans le cas où vous avez affaire à un modèle relativement volumineux, votre code sera dispersé par toutes les définitions et attributs imbriqués, ce qui complique les choses.
Nous ne pouvons pas utiliser les outils de développement python standard sans modifications car web2py a un support IDE vraiment médiocre.
Les frameworks Django et Web2py sont des frameworks full stack. Cela signifie qu'ils fournissent tout le code nécessaire - des générateurs de formulaires aux modèles de mise en page et à la validation des formulaires, et vous laissent écrire les choses en fonction de vos besoins spécifiques.
Cependant, avec les frameworks non-stack tels que Flask et Pyramid, si vous souhaitez créer un site Web complet, vous devrez ajouter vous-même beaucoup de code et des bits supplémentaires. Cela demande beaucoup de talent et de temps.
Tiret
Dash est entièrement conçu pour une tâche spécifique de construction d'un cadre réactif pour les tableaux de bord. Dash by Plotly est un excellent moyen pour le développeur python de créer des applications Web interactives sans avoir à apprendre Javascript et le développement Web frontal. Dash est construit sur Flask, Plotly.js, React et React Js.
Il n'y a pas de comparaison entre Dash et d'autres frameworks (mentionnés ci-dessus) car ils appartiennent à différentes catégories de frameworks. Voici quelques-unes des raisons de préférer dash à d'autres frameworks de tableau de bord interactif (Jupiter Dashboards, matplotlib et autres) -
Avec seulement 50 lignes de code, vous pouvez écrire une simple application Dash «bonjour le monde», car Dash nécessite très peu de passe-partout.
Des applications Dash entières sont écrites en langage python, le langage le plus préféré au monde.
Dans votre propre code Python, vous pouvez lier des composants interactifs Dash tels que des listes déroulantes, des entrées de texte, des curseurs et des graphiques avec des «rappels» Dash réactifs.
Les interfaces utilisateur compliquées des applications Dash peuvent avoir plusieurs entrées, plusieurs sorties et entrées qui dépendent d'autres entrées.
Simultanément, plusieurs utilisateurs peuvent travailler sur les applications Dash.
Pour créer vos propres composants Dash avec React, dash utilise React.js pour rendre les composants et inclut un système de plugins.
Les développeurs ou les rédacteurs peuvent écrire des applications de tableau de bord qui répondent au clic, au survol ou à la sélection de points sur le graphique, car les composants du graphique de Dash sont interactifs.
Conclusion
Nous pouvons conclure que le choix du bon framework parmi les nombreux frameworks python disponibles dépend uniquement du type de projet, de la complexité, du projet au niveau de la petite ou de l'entreprise, du type de support communautaire disponible ou des ressources en ligne disponibles, de l'évolutivité, de la sécurité, etc.
Les frameworks python mentionnés ci-dessus sont les meilleurs de leur catégorie mais ont leurs propres avantages et inconvénients (en fonction des exigences du projet). Ainsi, un type de cadre ne convient pas à tous les types de projets.