Originaltext: http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Da Python nicht speziell für die Webentwicklung konzipiert ist, entwickeln viele Python-Benutzer jetzt Programme, mit denen Python auf dem Framework ausgeführt werden kann des Webs. Dieser Artikel gibt eine kurze Einführung in Karrigell,
ein
leistungsstarkes und flexibles Python-/Web-Framework, das eine Vielzahl von Lösungen für die Webentwicklung bietet Wichtig ist, dass die Installation und Verwendung von Karrigell sehr einfach ist, und dass Karrigell einige Funktionen von Python aufgrund seiner einfachen Struktur nicht einschränkt. Sie können Ihren eigenen Webserver verwenden, um die Arbeit abzuschließen , aber es ist auch sehr einfach, mit anderen Webservern (z. B. Apache) zu arbeiten. Wenn Sie sich also für Karrigell entscheiden, können Sie weiterhin den Webserver verwenden, den Sie zuvor verwendet haben.
Dieser Artikel beginnt mit der Installation und
Einführung
mehrerer wichtiger Funktionen von Karrigell.
Wie oben erwähnt, ist die Installation von Karrigell überhaupt nicht mühsam. Der erste Schritt besteht darin, das neueste Karrigell von SourceForge herunterzuladen Einfach zu findendes Verzeichnis. Doppelklicken Sie dann auf Karrigell.py, um den integrierten Webserver von Karrigell zu starten. Wenn Sie dies
jedoch möchten
, endet die Installation von KarrigellRichten Sie Ihren Webserver für die Integration mit Karrigell ein. Nehmen wir als Beispiel Apache. Jetzt muss Karrigell im Hintergrund von Apache ausgeführt werden, damit Apache relevante Anfragen an Karrigell sendet
Da Apache normalerweise auf Port 80 läuft, müssen Sie einen anderen laufenden Port für Karrigell festlegen. Es gibt zwei Möglichkeiten, dies zu erreichen, indem Sie die Befehlszeile verwenden oder die Konfigurationsdatei von Karrigell ändern Sehen Sie, wie wir Karrigell über die Befehlszeile auf Port 8080 ausführen.
C:Karrigell>Karrigell.py -P 8080
Zweitens müssen Sie Karrigell.ini finden und dann den Satz
port=8080
hinzufügen.Jetzt müssen Sie Apache konfigurieren Um die relevanten Dateien zu übertragen, möchten Sie im Allgemeinen, dass Apache alle statischen Dateianforderungen wie PHP verarbeitet, oder Sie können einen separaten Pfad festlegen Damit Apache die Anfrage an Karrigell weiterleitet, müssen Sie Folgendes zur Datei httpd.conf von Apache
hinzufügen
RewriteRule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
RewriteRule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
RewriteRule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]
Wenn Sie möchten, können Sie in diesem Artikel festlegen, dass alle Anfragen für eine bestimmte Datei an Karrigell weitergeleitet werden , wir Der Testbereichspfad wird verwendet, also setzen wir httpd.conf wie folgt:
RewriteEngine Ein
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Natürlich können Sie dies tun:
RewriteEngine On
RewriteRule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
RewriteRule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
RewriteRule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
RewriteRule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]
Skripte und Dienste
Python-Skripte und Karrigell-Dienste sind die beiden Konzepte, die für Python-Entwickler am leichtesten zugänglich sind. Python-Skripte sind Python-Skripte, und Entwickler verwenden die print-Anweisung Gibt den Inhalt an den Browser des Benutzers aus. Wenn Sie es noch nicht verstehen, erstellen Sie ein Testbereichsverzeichnis, und dann beginnen wir mit der Erstellung unserer ersten Python-Skripte. Erstellen Sie eine neue Datei test.py:
print „<center>“
Drucken Sie „Hallo!“
drucken „<br /><br />“
print „Karrigell ist konfiguriert und funktioniert.“
print „</center>“
Öffnen Sie diese Datei im Browser. Wenn Ihr Karrigell zuvor korrekt eingerichtet wurde, wird die Ausgabe angezeigt.
Python-Skripte können auch problemlos Formulare verwenden. Erstellen wir eine einfache Seite, auf der Benutzer ihre Namen eingeben können:
if QUERY.has_key ( „name“).
print „Ihr Name ist“, _name + „.“
anders:
Drucken Sie „Wie ist Ihr Name?<br />“
„<Formular>“ drucken
print "<input type='text' name='name' /><br />"
print "<input type='submit' value='Proceed' />"
print „</form>“
Karrigell-Dienste werden ähnlich wie Python-Skripte geschrieben. Der Zweck besteht darin, Anforderungen den vom Benutzer angegebenen Methoden zuzuordnen. Beispielsweise wird die folgende URL übergeben Aufruf von test Mit dieser Methode
http://localhost/testarea/test.ks/test
können wir tatsächlich dieses Beispiel
def index() schreiben:
print „Indexfunktion.“
def test():
print „Testfunktion.“
Wenn Sie diese Python-Skripte verwenden, ohne den Methodennamen zu übergeben, führt Ihr Programm standardmäßig die Indexmethode aus. Wenn der Methodennametest bestanden wird, wird die Testmethode aufgerufen wird abnormal werfen.
Es ist auch einfach, Karrigell-Dienste zu verwenden, um in Formularen übergebene Daten zu verarbeiten. Erstellen wir einen ascname.ks
def index():
Drucken Sie „Wie ist Ihr Name?<br />“
print „<form action='nameSubmit'>“
print "<input type='text' name='name' /><br />"
print "<input type='submit' value='Proceed' />"
Drucken Sie „</form>“
def nameSubmit (name):
print „Ihr Name ist“, name + „.“
Natürlich ist es sehr gefährlich, externen öffentlichen Zugriff auf Ihre Methoden zu gewähren. Um zu verhindern, dass nicht autorisierte Benutzer auf Ihre Methoden zugreifen, stellen Sie Ihren Methoden ein Präfix voran:
def _private():
Bestehensversuche,
auf die _private-Methode zuzugreifen, lösen eine Ausnahme aus.
Bei der Verwendung von HIP
in askname.py ist Folgendes zu beachten: Dieser Code kann direkt ohne Verwendung von print ausgegeben werden Glücklicherweise bietet Karrigell eine solche Funktionalität, die all diese unangenehmen Druckanweisungen bereinigt. Und die Konvertierung von askname.py in TML Inside Python ist ebenfalls sehr einfach entfernt. Löschen Sie den Ausdruck in askname.py und benennen Sie die Datei in askname.hip
f QUERY.has_key ( „name“ ) um:
„Ihr Name ist“, _name + „.“
anders:
„Wie heißt du?<br />“
„<form method='POST'>“
"<input type='text' name='name' /><br />"
"<input type='submit' value='Proceed' />"
„</form>“
ist
HTML
Inside Python. Karrigell prüft Ihre Datei und fügt bei Bedarf automatisch Druck hinzu
Inside Python stellt natürlich auch Python Inside HTML bereit. Schreiben Sie wie üblich Python-Anweisungen in spezielle Tags und senden Sie dann die Endergebnisse an den Browser des Benutzers. Erstellen wir ein einfaches Beispiel: random.pih
<% import random %>
Zufallszahl: <b><% print random.random() %></b>
Wie Sie sehen, ist das Konzept von Python Inside HTML so einfach. Tatsächlich kann der Codeblock sogar noch einfacher sein:
<%= random .random() %>
Aber was ist, wenn Sie es mit komplexerer Logik zu tun haben, beispielsweise mit der Verarbeitung von Formulardaten? Formulardaten können genauso verarbeitet werden wie in Python-Skripten. Dies ist eine Replik von askname.py askname.pih
<%. if QUERY.has_key ( "name" ): %>
Ihr Name ist <%= _name %>.
<% Ende %>
<% sonst: %>
Wie ist Ihr Name?<br />
<form method='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</form>
<% end %>
Beachten Sie die Verwendung von <% end %>. Dies markiert das Ende des Codeblocks, genau wie die Einrückung unserer bedingten Anweisung oben. Eine andere Alternative ist die Verwendung des Indent-Tags, das auch verwendet wird Codeeinzug
identifizieren
<% if QUERY.has_key ( "name" ): %>
Ihr Name ist <%= _name %>.
<% sonst: %>
Wie ist Ihr Name?<br />
<form method='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</form>
</indent>
Probieren wir
weitere Funktionen
wie diese aus. Tags können über Python-Skripte verwendet werden, tagtest.py
rom HTMLTags import *
print CENTER ( B ("Test") )
Sitzung kann auch in Karrigell verarbeitet werden, und Karrigell bietet auch einen guten Sitzungsmechanismus, der der Objektorientierung nahe kommt Zurück zu unserem ersten Beispiel: Der Benutzer erhält eine Glückszahl. Wenn der Benutzer die Seite aktualisiert, ist die Nummer weiterhin vorhanden, da die Nummer in der Sitzung gespeichert wird. Natürlich hat der Benutzer die Möglichkeit, sie erneut zu verwenden. Holen Sie sich eine neue Glückszahl. Dies geschieht durch Schließen von Sessin. Erstellen Sie einen Karrigell-Dienst namens LuckyNumber.ks und geben Sie den folgenden Code ein:
import random
user = Session()
def index():
wenn nicht „luckyNumber“ im Verzeichnis (Benutzer):
user.luckyNumber = random.randint (0, 20)
print „Ihre Glückszahl:“, user.luckyNumber
drucken „<br /><br />“
print „<a href='reset'>Glückszahl zurücksetzen</a>“
def reset():
user.close()
print „Ihre Glückszahl wurde zurückgesetzt.“
drucken „<br /><br />“
print "<a href='index'>Zurück</a>"
Fazit
Karrigell bietet vier Methoden zum Öffnen von Websites: Python-Skripte, Karrigell-Dienste, HTML Inside Python und Python Inside HTML. Aber alle haben ihre eigenen Eigenschaften Ein gemeinsamer Vorteil: Die einfache Bedienung macht die Webentwicklung zu einer eleganten und einfachen Sache. Egal, ob Sie Karrigell allein oder in Kombination mit Apache verwenden, denn egal, ob für Anfänger oder Veteranen .