comment faire framework web basé sur le langage Python comme django?
Je me demande quelles sont les connaissances ou techniques sont nécessaires pour faire un framework web comme django.
de sorte que le webframework est en mesure de servir de l'informatique en nuage (un site web peut être mis à l'échelle à l'horizontale en envoyant des choses qui doivent être résolus à l'autre serveur.) lorsque nécessaire, et peut être utilisé pour construire un site web rapide comme django si un développeur veux construire un simple site web.
Désolé. mon anglais est très bizarre parce que je suis une coréenne.
donnez-moi juste quelques approches ou des instructions sur ce qu'techniques sont nécessaires pour construire un framework web ou de ce que j'ai à faire ou à apprendre.
Merci beaucoup.
OriginalL'auteur Anderson | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
Vous êtes à poser quelques questions ici:
Comment Faire un Framework Web comme Django
Première, découvrez cet article, Comment utiliser Python sur le Web. Il offre de très bonnes idées sur les différents éléments qui entrent dans un cadre.
Ensuite, vous devez vous demander combien vous voulez créer vous-même.
À Partir De Zéro
Si vous êtes en train de faire cela comme un exercice pour apprendre les tenants et les aboutissants de cadres, vous devriez lire sur WSGI. WSGI est l'API qui Django (et la plupart des autres python cadres) utilisation de l'interface avec le serveur web qui gère en fait la demande (comme Apache, nginx et lighthttpd). Ce n'est pas nécessairement une bibliothèque (bien qu'il existe des bibliothèques qui aident à la création de WSGI applications), mais plus d'une API standard qui, lorsqu'il est utilisé, des promesses que votre code fonctionne avec d'autres serveurs.
Il ressemble à ceci:
Que c'est.
environ
est un dictionnaire qui contient tous les CGI variables d'environnement.start_response
est une fonction de rappel qui vous appelez, avec les en-têtes de réponse et le code d'état. Enfin, la fonction devrait être de retour d'un itérateur, qui est le corps de la réponse. Vous pouvez trouver beaucoup plus à ce sujet à la WSGI site.Avec un "Wrapper" Bibliothèque
Si vous ne voulez pas avoir affaire avec les détails de WSGI (qui comporte quelques pièges qui peuvent causer des maux de tête), il y a quelques différentes bibliothèques qui encapsulent l'interface WSGI en quelque chose d'un peu plus convivial. Par exemple, plutôt que d'avoir le repsponse les en-têtes de la liste de string-n-uplets:
...ils pourraient vous permettre d'avoir une réponse de l'objet que l'on peut définir les en-têtes par le biais d'un dictionnaire...
Django a sa propre de demande et de réponse de l'API, mais il y a d'autres là-bas aussi bien pour vérifier. Sur le dessus de ma tête, werkzeug, et WebOb.
Utiliser un Cadre Existant (Recommandé)
Toutefois, si votre but est vraiment de créer un site web, et je pense que Django ne pouvez pas faire ce que vous voulez (ce qui n'est probablement pas le cas, mais je m'éloigne du sujet), alors vous ne voulez pas faire votre propre cadre de référence. Il ya beaucoup là-bas qui sont beaucoup plus léger que Django, et de vous permettre un peu plus de liberté pour choisir vos propres bibliothèques de travailler avec ("modulaire"). Cela signifie qu'ils sont conçus avec l'idée que vous pourriez utiliser pour n'importe quel but, plutôt que d'un framework comme Django, qui tente de vous diriger dans la direction de l'aide de tous leurs outils. Découvrez cadres comme Flacon, Bouteille, et CherryPy.
À comprendre que tous ces cadres, les bibliothèques et les Api sont juste des moyens à une fin. Tout ce que vous voulez faire peut probablement être fait dans l'un d'eux, donc c'est juste une question de trouver celui qui vous donne la bonne combinaison d'outils intégrés qui font tout le bas niveau du code que vous n'avez pas à mettre en œuvre sans ajouter trop de haut niveau, des trucs de s'infiltrer dans votre chemin.
Permettre le Framework Web pour être Servi dans le Cloud de sorte qu'il peut être mis à l'Échelle à l'Horizontale
Ce n'est vraiment pas une exigence de la web-cadre lui-même. Même en utilisant Django dans la manière typique (à l'aide de leur ORM et sur une base de données SQL) peut l'échelle horizontale pour une bonne part (voir la "mise à l'Échelle" dans la section de Déploiement chapitre de l'Django Livre pour certains aperçu de la façon dont c'est fait; les idées exprimées, il peut effectivement être utilisé pour la plupart mise à l'échelle horizontale des applications web). Raisonnable évolutivité horizontale sera atteint par le fait de la rédaction de votre demande d'une manière qui permettrait à l'échelle horizontale. Cela signifie généralement l'écriture de votre code serveur dans une manière qui suppose qu'il peut gérer les demandes sur les différents serveurs physiques. Ainsi, par exemple, si vous stockez des données de cookie dans un fichier à plat sur le serveur web, vous pourriez avoir des problèmes depuis la demande suivante pourrait aller sur un autre serveur et donc de ne pas trouver que les données de cookie. Que les données doivent être stockées dans une base de données où tous les serveurs ont accès.
Donc, j'espère que c'est assez pour vous laisser savoir que, dans le but de créer un cadre qui évolue, vous avez vraiment juste à comprendre la mise à l'échelle, et de construire ou de l'utilisation souhaitée de votre cadre de façon à ne pas prendre des décisions susceptibles de toucher vos sites de capacité à l'échelle. Ensuite, c'est à l'utilisateur de le cadre de l'échelle.
Vous pourriez aller une autre direction et rendre le cadre de la force de l'utilisateur en utilisant son propre Api pour tout, et écrire l'Api dans une manière que vous SAVEZ échelle dans certaines situations. Ensuite, demandez à l'utilisateur de mettre en place le site dans certaines situation. Ceci est similaire à la façon dont Google App Engine œuvres. Alors qu'une bonne idée, cela ne limiter l'utilisateur à l'aide de ce que Google permet.
Il suffit de garder à faire des trucs, et vous allez continuer à apprendre des trucs 🙂
Grande réponse. Je voudrais juste ajouter que le webob documentation a un article sur le sujet qui vaut la peine de lire. docs.webob.org/en/latest/do-it-yourself.html
OriginalL'auteur Mark Hildreth
Moderne web Python cadre devrait mettre en œuvre WSGI. Vous pouvez lire à propos de la justification derrière elle et quelques bons exemples de PEP 333.
Voici un un autre tutoriel qui passe à travers l'ensemble du processus de création.
OriginalL'auteur Uku Loskit
Un framework d'applications web doit gérer les requêtes http et de fournir des services publics, par exemple, pour simplifier le calcul de la réponse.
Vous devriez également vérifier d'autres Python frameworks web comme la bouteille (un micro-framework) et Web2py (basé sur l'architecture MVC modèle). Le Bouteille d'API est pédagogique.
OriginalL'auteur amit
Je voudrais également parcourir la documentation de la Pâte et de lire un peu de Ian Bicking.. Il jette le conceptuel blocs pour ainsi dire, tout à fait bien et a bloggedthe leçons apprises, comme il a été développé.
Web2py doco aussi
mais oui comme UKU dit: WSGI est une exigence moderne.
OriginalL'auteur Bob Blanchett