Entscheidungshilfe Unterrichtsgegenstand mit Python + HTML

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

könnte vielleicht ein Moderator die Moderatoren mal darauf hinweisen, beim eigentlichen Thema zu bleiben *SCNR*

Zum Thema: Die Anmerkung, die (viel) weiter oben stehen, dass das "lehren" von HTML Sinn macht, weil die Schülter dann sehen, dass es auch ohne WYSIWYG geht ist IMHO ein guter Ansatz. Dafür reicht ja auch schon ein bisschen HTML mit ein bisschen CSS.

Aber, das sehe ich auch so: damit will man ja kein halbes Schuljahr verbringen. Also: was kommt dann? Die Idee von Python + Webserver (also HTML ausliefern) ist schon gut. Das man (die Schüler) dabei nicht Python in allen tiefen kennenlernen ist denke ich klar. Ist aber auch wohl nicht das Ziel, so wie ich's verstanden habe. Das Ziel sollte wohl eher "Spaß am Computer mit Programmieren" sein und keine Vorbereitung auf's Studium.

Gruß, noisefloor
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Also: was kommt dann?
Also meine Planung sieht Stand heute so aus, dass ich jetzt erstmal BlackJacks Idee aufgegriffen habe und die Schüler aufgefordert habe, ihre persönlichen Seiten in einem gemeinsamen Ordner abzulegen, sich die anderen Seiten anzugucken und nach Vorlieben auf ihrer Seite zu verlinken. Ich habe mit lxml und graphviz eine Auswertung hinbekommen (Danke hier nochmal @BlackJack, grahpviz kannte ich noch gar nicht und kann das auch gut in Mathe verwenden) und auf die bisher zusammengekommenen Seiten (sind noch nicht alle Schüler fertig geworden) angewandt und bekomme recht brauchbare Ergebnisse. Wenn ich die Zeit finde, werde ich das ggf. noch ein wenig besser aufbereiten.
Darauf aufbauend werde ich dann erstmal etwas Datenschutz thematisieren und danach mit python + html anfangen. Ich hatte den Schülern beide Möglichkeiten (parsen bzw. Webserver) vorgestellt und wollte nächste Stunde mit den Schülern eine Entscheidung treffen, was wir jetzt wirklich machen. Die zweite Arbeit wird dann wohl auch über das gewählte Thema gehen, das ich aber auch noch ein wenig mit Grundlagen füttern muss (Schüler kennen z.B. Listen und Strings-Bearbeitung noch gar nicht, was für das parsen mMn elementar ist). Da ich den Schülern bereits erläutert habe, dass eigentlich fast niemand heutzutage mehr statisch in html Webseiten erstellt, sondern das in der Regel immer der Inhalt über eine Datenbank generiert wird, hatte ich überlegt ihnen zum Abschluss des Schuljahres ein CMS zu zeigen, mit dem sie ein wenig experimentieren können. Das wäre aber dann nur für die letzten paar Wochen, wo die Motivation erfahrungsgemäß eh nachlässt ;)

Für Ideen bin ich aber nach wie vor offen, erwartet bitte nur nicht, dass ich mich hier an der Grundsatzdiskussion beteilige, dafür fehlt mir einfach die Zeit. ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Also wenn du CMS machen willst, dann würde ich eher ein Wiki zeigen was etwas mehr hergibt und Wikipedia ansprechen was die Leute vermutlich schon kennen. Also wie so Wiki funktioniert und solche Sachen. Wirkt auf mich jedenfalls Welten nützlicher als ein CMS zu zeigen was für die meisten Leute wenig Relevanz hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

EmaNymton hat geschrieben:
ich überlegt ihnen zum Abschluss des Schuljahres ein CMS zu zeigen, mit dem sie ein wenig experimentieren können. Das wäre aber dann nur für die letzten paar Wochen, wo die Motivation erfahrungsgemäß eh nachlässt ;)
)
Wordpress wäre vielleicht ein geeignetes CMS. Es ist leicht zu installieren, konfigurieren und man kann schön mit Themes und Plugins rumspielen.
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Hallo nochmal, ich habe jetzt schon einige Zeit am Skript geschrieben und habe eine Frage, die ich mir so ohne große Erfahrung nicht beantworten kann.
lxml bietet ja sowohl die Möglichkeit mit xpath als auch mit cssselect die gewünschten Informationen zu suchen. Als erstes umfangreicheres Beispiel wollte ich in dem Skript ein Zitat des Tages von einer Internetseite parsen.

Ich habe mit xpath relativ schnell eine mögliche Lösung gefunden, mit cssselect zwar auch, die aber nicht wirklich schön ist, da man immer darauf angewiesen ist, dass das erste Element der Liste das Gesuchte ist. Vielleicht gibt es da ja noch eine bessere Lösung, die ich übersehen habe.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from lxml import html
tree = html.parse("http://www.zitate.de/")
print tree.xpath("//h3[text()='Zitat des Tages:']/following::p[1]/text()")[0]
print tree.getroot().cssselect('h3+p')[0].text_content()
Bisher komme ich persönlich mit xpath wesentlich besser zurecht und würde es auch für Schüler so sehen, da hier mMn eher die Pfad-Struktur im Baum erkennbar ist. Gibt es einen guten Grund, warum man cssselect vor xpath benutzen sollte?

Wenn jemand mal einen Blick in das Skript werfen möchte, ihr findet es hier:
https://dl.dropbox.com/u/107743837/html ... t_lxml.pdf

Ist aber noch nicht fertig, das Kapitel über Strings wollte ich erst dann zuende schreiben, wenn ich genau weiß, was bei der Weiterverarbeitung der Strings so alles notwendig ist. Konstruktives Feedback/Fehlerberichtigungen sind willkommen, bedenkt bitte, dass es für 14-15 jährige geschrieben ist. Viele der Aufgaben sind auch noch nicht wirklich getestet, sondern erstmal aufgeschrieben, also können sich auch da noch mögliche Hürden für die Schüler verbergen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich würde gar nicht so viel mit Selektoren matchen wollen. Mit jQuery und CSS-Selektoren würde ich das so lösen:

Code: Alles auswählen

$("h3").next("p").first().text()
Du siehst, die Selektoren die ich nutze sind Trivial. Und bei XPath müsste ich erstmal lange in der Dokumentation suchen, weil XPath ne ganz eigene Sprache ist. Im Web-Umfeld hat man mit HTML, CSS, JavaScript, SQL und Python, da muss man nicht umbedingt noch weitere Sprachen einführen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten