


Obtenez une compréhension approfondie de plusieurs frameworks Web Python couramment utilisés
Parmi les différentes plates-formes linguistiques, Python a probablement le plus de frameworks Web émergents. C'est un monde où une centaine de fleurs s'épanouissent, avec d'innombrables micro-frameworks et frameworks. La raison peut être qu'il est très simple de construire un framework en Python. , ce qui fait que la roue continue d'être inventée. Donc
Il y a toujours des sujets dans la communauté Python sur lesquels le framework Python est meilleur ou pire. Permettez-moi de vous présenter plusieurs frameworks python majeurs :
Django
Django devrait être le framework py le plus célèbre de Google App Engine et même Erlang a des frameworks qui le prennent en charge. Influence.
Django prend une direction vaste et globale. Il est surtout connu pour son backend de gestion entièrement automatisé : il vous suffit d'utiliser ORM et de définir des objets simples, et il peut générer automatiquement des structures de base de données et une gestion complète. arrière-plan.
La commodité fournie par Django signifie également que l'ORM intégré de Django est fortement couplé aux autres modules du framework.
L'application doit utiliser l'ORM intégré de Django, sinon elle ne pourra pas profiter des différentes commodités basées sur l'ORM fournies dans le framework en théorie, vous pouvez désactiver son module ORM, mais c'est équivalent ; à rénover l'achevé Si la maison doit être démolie et rénovée, il vaut mieux aller à la maison brute pour faire une
toute nouvelle décoration dès le début.
L'argument de vente de Django est son efficacité de développement ultra-élevée, mais son expansion des performances est limitée ; les projets utilisant Django doivent être restructurés une fois que le trafic atteint une certaine échelle pour répondre aux exigences de performances.
Les défauts de Django proviennent principalement de l'insistance de Django à fabriquer toutes ses propres roues. L'ensemble du système est relativement fermé. Les aspects les plus critiqués de Django sont :
· Le système est étroitement couplé. Si vous pensez que Django a intégré Une certaine fonction de celui-ci n'est pas très bonne et il est difficile de la remplacer par votre bibliothèque tierce préférée, telle que l'ORM et le modèle qui seront mentionnés ci-dessous. Il est presque impossible d'utiliser SQLAlchemy ou Mako dans Django, et même avec quelques correctifs, cela vous mettra très, très mal à l'aise.
· L'ORM fourni avec Django est beaucoup moins puissant que SQLAlchemy À l'exception de Django, SQLAlchemy est le standard ORM de facto dans le monde Python. D'autres frameworks prennent en charge SQLAlchemy, mais Django insiste toujours sur ce point. ensemble. Les développeurs
de Django ont également discuté et essayé de prendre en charge SQLAlchemy, mais ont finalement abandonné. On estime que le coût est trop élevé et qu'il est difficile à intégrer avec d'autres modules Django.
· La fonction Template est relativement faible et ne peut pas être insérée dans le code Python. Pour écrire une logique plus complexe, vous devez utiliser Python pour implémenter Tag ou Filter. La conception du système de modèles de Django est très intéressante et devrait constituer la partie la plus influente et la plus controversée de son framework.
La philosophie de conception des modèles Django est de séparer complètement le code et les styles ; asp.net préconise la séparation du code/des modèles, mais techniquement, ils peuvent toujours être mélangés et Django élimine fondamentalement le codage dans les modèles, la possibilité de le faire. traitement des données.
Par exemple, dans le modèle asp.net, vous pouvez écrire :
<%
int i;
for(i==0; i< 10;i++){
....
}
%>
Django ne prend pas en charge l'intégration de code similaire à celui ci-dessus tout, vous ne pouvez utiliser que les fonctions intégrées de ses modèles ; en fait, il construit un « nouveau langage » pour ses modèles ; car ce « nouveau langage » est très simple, ses modèles peuvent également être portés sur différentes plateformes.
Dans la plupart des cas, la fonction de modèle de Django est suffisante, mais pour des situations spéciales (parfois « spécial » n'est pas très spécial), vous devez toujours intégrer du code dans le modèle, puis vous devez suivre son système de modèles. les règles sont utilisées pour l’expansion du modèle. Parfois, un problème qui peut être résolu en écrivant
directement dans le modèle avec une seule ligne de code deviendra plus d'une douzaine de lignes de code après avoir été implémenté avec l'extension de modèle.
La question de savoir si la programmation dans des modèles est tolérée est l'aspect le plus controversé des modèles Django.
Pylons & TurboGears & repoze.bfgEn plus de Django, l'autre grand est Pylons, car TurboGears2.x est basé sur Pylons, et repoze.bfg est également Il a été incorporé dans le grand projet Pylons, et TurboGears et repoze.bfg ne seront pas discutés séparément plus tard.
Les concepts de conception de Pylons et de Django sont complètement différents. Pylons lui-même ne contient qu'environ deux mille lignes de code Python, mais il est également livré avec des modules tiers qui sont presque utilisés par Pylons. Pylons ne propose qu'une seule étagère et des options, vous pouvez la personnaliser selon vos propres préférences
Avec une sélection gratuite de composants tels que modèle, ORM, formulaire, authentification, etc., le système est hautement personnalisable. Nous disons souvent que Python est un langage de colle, nous pouvons donc certainement dire que Pylons est un framework de colle conçu avec un langage de colle.
Choisir Pylons, c'est probablement choisir sa liberté Choisir la liberté, c'est aussi choisir le cauchemar :
· Cauchemar d'apprentissage, Pylons s'appuie sur de nombreuses bibliothèques tierces, elles ne sont pas Made in Pylons, quand à elles. vous apprenez Pylons, vous devez également apprendre à utiliser ces bibliothèques. La clé est parfois que vous ne savez pas ce que vous voulez apprendre. La courbe d'apprentissage de Pylons est bien plus élevée que celle de Django, et la documentation officielle de Pylons a été la cible de critiques. Heureusement, le livre The Definitive Guide to Pylons a été publié plus tard. Cette situation a été résolue. Quelque chose a changé. Pour cette raison, Pylons était autrefois connu comme un framework Python réservé aux experts.
· Cauchemar de débogage, car de nombreux modules sont impliqués, il est difficile de localiser le problème une fois qu'une erreur se produit. Cela peut être la faute du programme que vous avez écrit, ou il se peut que Pylons soit faux, ou que SQLAlchemy soit faux, ou peut-être qu'il y a un bug dans le formencode. Quoi qu'il en soit, c'est très compliqué
. Ce problème ne peut être résolu que si vous le connaissez.
· Cauchemar de mise à niveau. Pour installer Pylons, vous devez installer près de 20 modules Python, grands et petits, chacun avec son propre numéro de version. Pour mettre à niveau la version de Pylons, il existe une possibilité d'incompatibilité dans n'importe quel module. . Mettre à niveau En gros, c'est très difficile. Jusqu'à présent, les Pylônes de Reddit sont toujours bloqués à la
version antique 0.9.6, et SQLAlchemy est toujours à la version 0.5.3, ce qui devrait être lié à cela.
L'intégration de Pylons et repoze.bfg pourrait donner naissance au prochain framework qui pourra remettre en question le statut de Django.
Tornado & web.pyTornado ( http://www.tornadoweb.org ) est un framework open source de Facebook. Sa philosophie est presque à l'opposé de celle de Facebook. Django. Tornado est un serveur Web (cet article ne détaillera pas ce point), et c'est aussi un micro-framework similaire à web.py.
Tornado prend la direction de moins mais mieux. Il fournit également une fonction de modèle bien que cela ne soit pas encouragé, l'auteur peut autoriser une petite quantité de codage dans le modèle (intégrant directement une seule ligne de code py) ; .
Par rapport à asp.net, Tornado est un peu similaire et n'implémente qu'AsyncHttpHandler, à part cela, vous devez tout implémenter vous-même.
Eh bien, en fait, il dispose de modèles, d'un support d'internationalisation et même d'un module OAuth/OpenID intégré pour faciliter la connexion de tiers. Il implémente en fait directement le serveur HTTP.
Mais il n'a pas d'ORM (seulement une encapsulation super simple de MySQL), et il n'a même pas de support de session, encore moins de backend automatisé comme Django.
Supposons qu'il s'agisse d'un grand site Web. Sous l'exigence de hautes performances, chaque partie du framework doit souvent être personnalisée, et il existe très peu de modules qui peuvent être réutilisés pour un site Web développé avec Django. Une partie a été continuellement personnalisée. Le reste du framework Django est très probablement ce que tornado peut fournir depuis le début.
Différents chemins mènent à la même destination.
Serveur HTTPTornado embarque directement le serveur HTTP afin d'implémenter efficacement les appels asynchrones Comet/backend de l'interface HTTP. Le front-end est accessible par le navigateur sans ajouter apache/lighttpd/nginx, etc. ; mais il n'implémente pas entièrement le protocole HTTP 1.1, le document officiel recommande donc aux utilisateurs d'utiliser nginx au front-end. -end et back-end dans l'environnement de production Proxy inverse vers plusieurs instances Tornado.
Tornado lui-même est un programme réseau asynchrone monothread Lorsqu'il est démarré par défaut, il exécutera plusieurs instances en fonction du nombre de processeurs en tirant pleinement parti du processeur multicœur.
Asynchrone monothreadLes sites Web ont essentiellement des opérations de base de données, et Tornado est monothread, ce qui signifie que si la requête de base de données revient trop lentement, la réponse entière du serveur sera bouché. Les requêtes de base de données sont essentiellement des appels réseau distants ; idéalement, ces opérations seraient encapsulées comme asynchrones, mais Tornado ne fournit aucune prise en charge pour cela ;
Pour qu'un système puisse répondre à un trafic élevé, il doit résoudre le problème de la vitesse des requêtes dans la base de données !
S'il y a un problème de performances des requêtes dans la base de données, quelle que soit la façon dont l'ensemble du système est optimisé, la base de données constituera un goulot d'étranglement et ralentira l'ensemble du système !
L'asynchrone n'améliore pas en soi les performances du système ; il évite simplement l'attente inutile des réponses du réseau et la consommation du processeur des threads de commutation.
Si la réponse à la requête de la base de données est trop lente, ce qui doit être résolu est le problème de performances de la base de données ; et non l'application Web frontale qui appelle la base de données.
Pour une requête de données renvoyées en temps réel, idéalement, il est nécessaire de s'assurer que toutes les données sont en mémoire et que l'entrée/sortie du disque dur de la base de données doit être 0 ; seule une telle requête peut être suffisamment rapide et si la requête de la base de données est suffisamment rapide ; , alors l'application Web frontale ne pourra pas. Il est nécessaire d'encapsuler la requête de données de manière asynchrone
.
Même si vous utilisez des coroutines, les programmes asynchrones augmenteront toujours la complexité des programmes synchrones ; ce qu'il faut mesurer, c'est si la gestion de la complexité supplémentaire en vaut la peine.
S'il y a des requêtes sur le backend qui sont trop lentes et ne peuvent pas être contournées, la suggestion de Tornaod est d'encapsuler ces requêtes indépendamment dans le backend dans des interfaces HTTP, puis d'utiliser le client HTTP asynchrone intégré de Tornado pour les appeler. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Dans VS Code, vous pouvez exécuter le programme dans le terminal via les étapes suivantes: Préparez le code et ouvrez le terminal intégré pour vous assurer que le répertoire de code est cohérent avec le répertoire de travail du terminal. Sélectionnez la commande Run en fonction du langage de programmation (tel que Python de Python your_file_name.py) pour vérifier s'il s'exécute avec succès et résoudre les erreurs. Utilisez le débogueur pour améliorer l'efficacité du débogage.
