EINFÜHRUNG |
HTML (Hyper Text Markup Language) ist eine Dokumentbeschreibungssprache für Webseiten. Eine im Browser dargestellte Webseite, die dir noch so kompliziert erscheint, wird aus einer gewöhnlichen Textdatei erzeugt, die für das Layout neben dem sichtbaren Text zusätzlich Auszeichnungen (Markups) enthält, die das Erscheinungsbild festlegen. Diese bestehen aus einem Tag-Paar mit einem Start- und Endtag. Das Starttag beginnt mit der Spitzklammer < und wird mit der Spitzklammer > geschlossen; das Endtag beginnt mit </ und wird ebenfalls mit > geschlossen. Das Grundgerüst einer HTML-Textdatei besteht aus den Tags <html> und <body> sowie den entsprechenden Endtags. <html> <body> TigerJython Web-Site </body> </html> Die Gross-Kleinschreibung von Tags, sowie Zeilenumbrüche und Einrückungen spielen für das Layout des Dokuments keine Rolle. |
WAS SIND STRINGS? |
In vielen Programmen, so auch im Zusammenhang mit dem Web, benötigst du einen Datentyp, der Text abspeichern kann. Darunter versteht man eine Aneinanderreihung von Buchstaben (eine Zeichenkette), so wie du sie mit der Tastatur eingeben kannst. Zusätzlich brauchst du einige Steuerzeichen, beispielsweise um einen Zeilenumbruch oder Tabulatoren zu kennzeichnen. In Python verwendest du für Zeichenketten (Strings) den Datentyp str. Der Text eines Strings wird zwischen doppelten oder einfachen Anführungszeichen gesetzt. Du kannst Strings wie eine Liste auffassen, deren Elemente einzelne Zeichen sind. Die meisten dir bekannten Operationen für Listen sind daher auch für Strings anwendbar, mit einem wichtigen Unterschied: Ein einzelnes Zeichen kannst du mit einem Index aus dem String herausholen (eckiges Klammerpaar), du kannst das Zeichen aber nicht mit einer Zuweisung verändern, da der String ein unveränderlicher Datentyp ist. Willst du einen String verändern, so musst du einen neuen String erstellen [mehr...
In Python werden Strings intern mit 8-bit ASCII-Zeichen dargestellt. Setzt man Dein Programm definiert HTML-formatierten Text als String html und schreibt ihn auf der Konsole aus. html = "<html><body>TigerJython Web Site</body></html>" print(html) Um einen String zeichenweise zu durchlaufen, verwendest du eine for-Schleife mit einem Index: html = "<html><body>TigerJython Web Site</body></html>" for i in range(len(html)): print(html[i]) Eleganter ist es aber, eine for-Schleife mit dem Schlüsselwort in zu verwenden: html = "<html><body>TigerJython Web Site</body></html>" for c in html: print(c) Ein String kann auch spezielle Steuerzeichen enthalten. Diese Escape-Character werden mit einem Rückwärtsbruchstrich (Backslash) eingeleitet, beispielsweise lautet das Zeichen für eine neue Zeile \n (newline , auch Linefeed <lf> genannt). Du erstellst beispielsweise die ganz am Anfang des Kapitels gezeigte Formatierung mit: html = "<html>\n <body>\n TigerJython Web Site\n </body>\n</html>" print(html) Texte kannst du auch aus einer Textdatei einlesen. Erstelle dazu mit irgend einem Texteditor im gleichen Verzeichnis, in dem sich dein Programm befindet, die Datei welcome.html mit folgendem Inhalt: <html> <body> <h1>TigerJython Web-Site</h1> Guten Tag </body> </html> Mit dem Tag <h1> zeichnest du eine Überschrift aus. Dein Programm liest diese Textdatei in den String html und schreibt ihn wieder in die Konsole aus. html = open("welcome.html").read() print(html) |
MEMO |
Ein String ist ein unveränderliches Objekt bestehend aus einzelnen Zeichen. Du kannst einzelne Zeichen mit einem Index lesen. Wenn du aber mit einer Zuweisung versuchst, ein Zeichen zu ersetzen, ergibt sich eine Fehlermeldung. In Python gibt es keinen Datentyp char, denn einzelne Zeichen werden ebenfallse als Strings aufgefasst. Textdateien werden mit open() geöffnet. Dabei übergibst du den Pfad zur Datei. Dieser kann relativ zum Verzeichnis sein, in dem sich dein Programm befindet, aber auch absolut, wenn du einen Bruchstrich (unter Windows eventuell auch noch einen Laufwerkbuchstaben) vorstellst, also beispielsweise
Man kann zwei Strings mit dem Additionsoperator + aneinander fügen (konkatenieren). Wichtig ist aber, dass beide Operanden wirklich Strings sind. Beispielsweise führt "pi = " + 3.1459 zu einer Fehlermeldung. Du musst dafür "pi = " + str(3.14159) schreiben, also die Zahl zuerst mit str() in einen String konvertieren. Die wichtigsten Operationen mit Strings
|
WEB-BROWSER |
Die wichtigste Aufgabe eines Web-Browsers ist es, die HTML-Tags zu interpretieren und die Seite gemäss den Layoutangaben in einem Bildschirmfenster darzustellen. Du kannst die Datei welcome.html mit einem auf deinem PC installierten Web-Browser (Firefox, Explorer, Chrome, Safari, Opera, usw.) anzeigen.
from ch.aplu.util import HtmlPane html = open("welcome.html").read() pane = HtmlPane() pane.insertText(html) |
MEMO |
Ein Web-Browser interpretiert die HTML-Markups und stellt das Dokument gemäss den Layoutangaben dar. HtmlPane kennt nur die grundlegenden HTML-Tags. Die Anzeige von komplexen HTML-Seiten wird nicht unterstützt. Du kannst ein HtmlPane auch dazu gebrauchen, deine Programmausgaben in einem eigenen Fenster mit einem gefälligen Layout anzuzeigen, statt in der Konsole auszuschreiben. |
HYPERLINKS |
Die explosionsartige Verbreitung des Web ist im Wesentlichen darauf zurück zu führen, dass eine Webseite Elemente enthalten kann, die bei einem Mausklick zu einer Webseite führt, die auf irgendeinem anderen, sogar weit entfernten Webserver liegen kann. Elemente dieser Art werden Hyperlinks genannt. Mit Hyperlinks lässt sich eine vernetzte Informationsstruktur, ähnlich einem Spinnennetz, aufbauen. Du erstellst wieder mit einem Texteditor die Datei welcomex.html, die ein Link-Tag <a> enthält. Neu ist auch noch das Paragraph-Tag <p> enthalten, das standardmässig neue Abschnitte mit einem Zeilenumbruch definiert. <html>
<body>
<h1>TigerJython Web-Site</h1>
<p>Guten Tag!</p>
<a href="http://www.tigerjython.ch/">TigerJython Home</a>
</body></html>
Du musst in deinem Programm die Hyperlinks aktivieren, indem du eine Funktion linkCallback() definierst und sie mit dem benannten Parameter linkListener registrierst. Klickst du auf den Link, so führt dieser Event zum Aufruf des Callbacks, wobei die im Link-Tag enthaltene URL übergeben wird. from ch.aplu.util import HtmlPane def linkCallback(url): pane.insertUrl(url) html = open("welcomex.html").read() pane = HtmlPane(linkListener = linkCallback) pane.insertText(html) |
MEMO |
Hyperlinks sind Querverweise in einem Dokument, mit dem zu anderen Dokumenten gesprungen werden kann. Verlinkte Dokumente sind ein charakteristisches Merkmal des World Wide Web. Die Darstellung von Webseiten mit HtmlPane ist leider unvollständig. Du kannst aber mit HtmlPane.browse() den Standard-Browser verwenden [mehr... Den programmgesteuerten Aufruf eines anderen Programms oder Prozesses nennt man auch "spawnen"]. from ch.aplu.util import HtmlPane HtmlPane.browse("www.tigerjython.com") |
AUFGABEN |
|