Ich frage mich nur, welche Kenntnisse oder Techniken benötigt werden, um ein Web-Framework wie django zu erstellen.
so kann das Webframework als Cloud Computing dienen (eine Website kann horizontal skaliert werden, indem man einige Sachen sendet, die an einen anderen Server gelöst werden müssen), wenn nötig, und kann verwendet werden, um eine Website schnell wie django zu erstellen Entwickler wollen eine einfache Website erstellen.
Entschuldigung. mein Englisch ist sehr peinlich, weil ich ein Koreaner bin.
Geben Sie mir nur einige Ansätze oder Anweisungen darüber, welche Techniken benötigt werden, um ein Web-Framework zu erstellen oder was ich zu tun oder zu lernen habe.
Vielen Dank.
Sie stellen hier ein paar Fragen:
Sehen Sie sich zunächst diesen Artikel Python im Web an . Es liefert sehr gute Ideen zu den verschiedenen Stücken, die in einen Rahmen gehen.
Als nächstes müssen Sie sich fragen, wie viel Sie selbst erstellen möchten.
Wenn Sie dies als Übung zum Erlernen der Grundlagen von Frameworks tun, sollten Sie sich über WSGI informieren. WSGI ist die API, die Django (und die meisten anderen Python-Frameworks) für die Verbindung mit dem Webserver verwendet, der die Anforderungen tatsächlich verarbeitet (wie Apache, nginx und lighthttpd). Es ist nicht notwendigerweise eine Bibliothek (obwohl es Bibliotheken gibt, die beim Erstellen von WSGI-Anwendungen helfen), sondern eher eine Standard-API, die, wenn sie verwendet wird, verspricht, dass Ihr Code mit anderen Servern funktioniert.
Es sieht so aus:
%Vor% Das ist es. environ
ist ein Wörterbuch, das alle CGI Umgebungsvariablen enthält. start_response
ist eine Callback-Funktion, die Sie mit den Antwortheadern und dem Statuscode aufrufen. Schließlich wird erwartet, dass die Funktion einen Iterator zurückgibt, der der Antworttext ist. Auf der WSGI-Website können Sie mehr darüber erfahren.
Wenn Sie sich nicht mit den Details von WSGI befassen möchten (was einige Probleme mit sich bringt, die einige Kopfschmerzen bereiten können), gibt es ein paar verschiedene Bibliotheken, die das WSGI-Interface in etwas benutzerfreundlicher verpacken . Zum Beispiel sollten die Repsponse-Header keine Liste von String-Tupeln sein:
%Vor%... sie könnten Ihnen erlauben, ein Antwortobjekt zu haben, das die Header durch ein Wörterbuch setzen kann ...
%Vor%Django hat seine eigene Anfrage- und Antwort-API , aber es gibt noch andere da draußen Gut zu sehen. Aus der Nähe meines Kopfes, werkzeug , und WebOb .
Wenn dein Ziel jedoch wirklich darin besteht, eine Website zu erstellen und zu denken, dass Django nicht tun kann, was du willst (was wahrscheinlich nicht der Fall ist, aber ich schweife ab), dann willst du nicht Machen Sie Ihren eigenen Rahmen überhaupt. Es gibt viele da draußen, die leichter als Django sind und Ihnen ein bisschen mehr Freiheit bei der Auswahl und Auswahl Ihrer eigenen Bibliotheken erlauben ("modular"). Das bedeutet, dass sie so konzipiert sind, dass Sie sie für jeden Zweck verwenden, und nicht als Framework wie Django, das versucht, Sie in Richtung der Verwendung all ihrer Tools zu lenken. Schauen Sie sich Frameworks wie Flask , Flasche und CherryPy .
Verwirklichen Sie, dass all diese Frameworks, Bibliotheken und APIs nur Mittel zum Zweck sind. Alles, was Sie tun möchten, kann wahrscheinlich in jedem von ihnen getan werden, also ist es nur eine Frage des Findens desjenigen, der Ihnen die richtige Kombination von eingebauten Werkzeugen gibt, die den ganzen Low-Level-Code ausführen, den Sie nicht implementieren müssen ohne zu viel High-Level-Zeug aus dem Weg zu kommen.
Dies ist wirklich keine Voraussetzung für das Web-Framework selbst. Selbst die Verwendung von Django in der typischen Weise (mit ihrem ORM und einer SQL-Datenbank) kann horizontal in einem guten Umfang skaliert werden (siehe den Abschnitt "Skalierung" in der Google App Engine . Obwohl dies eine nette Idee ist, schränkt dies den Benutzer ein, was Google erlaubt.
Ein modernes Python-Web-Framework sollte WSGI implementieren. Sie können über die Begründung dahinter und einige gute Beispiele von PEP 333 nachlesen.
>Hier ist ein weiteres Tutorial , das den gesamten Erstellungsprozess durchläuft.
Ein Webanwendungsframework sollte Ссылка verarbeiten und Dienstprogramme bereitstellen, um beispielsweise die Verarbeitung der Antwort zu vereinfachen.
Sie sollten auch andere Python-Web-Frameworks wie bottle (ein Micro-Framework) und Web2py (basierend auf dem MVC-Architekturmuster) ausprobieren. Die Flaschen-API ist lehrreich.
Ich würde auch die Dokumentation für Paste durchsuchen und ein wenig von Ian Bicking lesen. Er legt die konzeptionellen Blöcke sozusagen ziemlich gut dar und hat die Lektionen gelehrt, wie sie entwickelt wurden.
Web2py doco auch
aber ja, wie UKU sagte: WSGI ist eine moderne Anforderung.