Dokumentation: Praktikum 2

Allgemeine Beschreibung der Lösung

Das Praktikum 2 ist in Python geschrieben und nutzt das Framework CherryPy, mit welchem eine Website zur Verwendung erzeugt wird.

Dieser Server läuft mit einer Datenbank, welche Informationen via des Python-Moduls json in Dateien abspeichern und auslesen kann.

Die Website wird durch ein Template erzeugt, welches durch die Template-Engine mako umgesetzt wird, wodurch Daten aus der Datenbank ausgeben werden können.

Beschreibung der Komponenten

Zweck

Die Website stellt den Inhalt einer Absolventenfeier dar. Es besteht die Möglichkeit sich für diese anzumelden, mit der Option sich auch wieder abzumelden. Dieser Prozess wird durch ein Passwort geschützt, welches der Benutzer selber wählen kann. Die Daten die eingeben wurden, können jederzeit geändert werden, es muss jedoch das Passwort eingeben werden.

Aufbau

server.py

Die server.py hat die Aufgabe die Website bereitzustellen und nutzt hierfür das CherryPy-Framework, sowie die folgenden Module.

application.py

Die application.py leitet Anfragen, die durch die Website, welche durch das CherryPy-Framework erzeugt wurde, an die anderen Module weiter.

datenbank.py

Die datenbank.py stellt den Speicher des Systems dar. Sie dient als Schnittstelle, um Daten abzuspeichern, verändern, oder zu löschen.

anzeigen.py

Die anzeigen.py generiert die Templates, welche benötigt werden, um die Informationen auf der Website anzuzeigen. Um dies zu ermöglichen wird die mako-Engine verwendet.

Zusammenwirken der Komponenten

Durch die server.py werden die Anfragen durch das CherryPy-Framework erkannt und weitergeleitet an die application.py Die application.py verarbeitet die Anfragen und gibt Anweisungen an die datenbank.py und anzeigen.py was mit diesen geschehen soll. Im folgenden werden diese Anweisungen dann von der datenbank.py und anzeigen.py ausgeführt.

Datenablage

Die Daten, die von der datenbank.py verarbeitet werden, liegen in dem Verzeichnis "/data/" und liegen im ".json" Format vor. Als Dateiname wird die jeweilige ID (abhängig von der Reihenfolge der Anmeldung) des Benutzers mit der Endung ".json" verwendet. In der "letztes.json" wird immer die zuletzt verwendete ID gespeichert, damit das System weiß, bis zu welcher ID Daten vorliegen.