122 lines
3.5 KiB
Plaintext
122 lines
3.5 KiB
Plaintext
|
#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.
|
||
|
|
||
|
|
||
|
|
||
|
###API
|
||
|
|
||
|
**index**
|
||
|
|
||
|
Stellt die Startseite der Absolventenfeier dar. Diese enthält eine Tabelle mit Anmeldungen und bietet die Möglichkeit diese zu bearbeiten.
|
||
|
|
||
|
|
||
|
**ausschuss_app**
|
||
|
|
||
|
Zeigt dem Prüfungsausschuss eine sortierte Liste mit Anmeldungen und bietet die Möglichkeit ein Abschlussthema zu bearbeiten.
|
||
|
|
||
|
|
||
|
**hinzufuegen_app**
|
||
|
|
||
|
Zugriff auf die *Bearbeiten-Funktion*, jedoch ohne einlesen vorhandener Daten. Wird genutzt um einen neuen Eintrag zu erstellen.
|
||
|
|
||
|
|
||
|
**passwort_app**
|
||
|
|
||
|
Passwort-Abfrage für die übergebene ID.
|
||
|
|
||
|
|
||
|
**passwort_loeschen_app**
|
||
|
|
||
|
Passwort-Abfrage zum Löschen der übergebenen ID.
|
||
|
|
||
|
|
||
|
**bearbeiten_app**
|
||
|
|
||
|
Möglichkeit Einträge in *inhalt_alle* zu verändern.
|
||
|
|
||
|
|
||
|
**bearbeiten_ausschuss_app**
|
||
|
|
||
|
Möglichkeit *Abschlussarbeit* in *inhalt_alle* hinzuzufügen, oder zu ändern.
|
||
|
|
||
|
|
||
|
**speichern_app**
|
||
|
|
||
|
Speichert übergebene Einträge in *inhalt_alle*. Danach wird Inhalt in .json gespeichert.
|
||
|
|
||
|
|
||
|
**speichern_ausschuss_app**
|
||
|
|
||
|
Speichert übergebenen Eintrag *Abschlussarbeit* in *inhalt_alle*. Danach wird Inhalt in .json gespeichert.
|
||
|
|
||
|
|
||
|
**loeschen_app**
|
||
|
|
||
|
Löscht übergebene ID, sofern das übergebene Passwort, mit dem in *inhalt_alle* gespeicherten.
|
||
|
|
||
|
|
||
|
**fehler_app**
|
||
|
|
||
|
Lässt Fehlermeldungen ausgeben.
|