Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

framework.tex 3.5KB

1234567891011121314151617181920212223242526272829303132333435
  1. \chapter{Framework}
  2. \label{ch:framework}
  3. Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die ausschlie"slich Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website([Ndu17]). Ein entscheidender Vorteil hierbei ist das dazugehörige Framework Django, auf das im folgenden Kapitel genauer eingegangen wird.
  4. \section{Django}
  5. Django ist ein Web-Framework, das auf einer Model-View-Presenter (MVP) Architektur basiert. Ähnlich wie der Model-View-Controller sind die Interaktionen zwischen Model und View die Auswahl und Ausführung von Befehlen und das Auslösen von Ereignissen (vgl. Abbildung 2.1). Da die View aber hier bereits den Gro"steil des Controllers übernimmt, ist der MVP eine Überarbeitung. Der Teil, der Elemente des Modells auswählt, Operationen durchführt und alle Ereignisse kapselt, ergibt die Presenter-Klasse([She09]). Durch die direkte Bindung von Daten und View, geregelt durch den Presenter, wird die Codemenge der Applikation stark reduziert.
  6. \begin{figure}[!h]
  7. \centering
  8. \includegraphics[width=0.5\textwidth]{figures/MVP}
  9. \caption{Vereinfachter MVP}
  10. \hfill
  11. \end{figure}
  12. Der Prozess vom Anfragen der URL über den Server, bis hin zur fertig gerenderten Website kann wie folgt vereinfacht darstellen. Der User gibt eine URL im Browser ein und sendet sie an den Web-Server. Das Interface WSGI am Web-Server leitet den Request zum passenden Objekt einer Applikation weiter. Da das Framework über eine explizite Zuweisung der verschiedenen Seiten verfügt, iteriert der urlresolver über die vorhandene URL-Struktur im Code (url.py). Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (view.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Wie bereits erwähnt, ist es möglich unter Anderem auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Nachdem werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite in der der strukturelle Aufbau im Frontend festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden werden und, wenn nötig, mit einfachen Python-Befehlen anpassen. Nun kann das Template einen Response an den Web-Server schicken und die fertige Seite wird beim Klienten im Browser gerendert (vgl. Abbildung 2.1).
  13. \begin{figure}[!h]
  14. \centering
  15. \includegraphics[width=0.5\textwidth]{figures/request-response-cycle}
  16. \caption{Request-Response-Kreislauf des Django Frameworks}
  17. \hfill
  18. \end{figure}
  19. \subsection {Besonderheiten}
  20. Das Django-Framework bringt einige Besonderheiten mit sich, die beim implementiern des Prototypen von Bedeutung sind. Diese werden im Folgenden beschrieben.
  21. Die Django-Administratoroberfläche ist eines der hilfreichsten Oberflächen des gesamten Frameworks. Es stellt die Metadaten der Modelle aus dem Code visuell dar. Verifizierte Benutzer können die Daten nicht nur schnell erfassen, sondern diese auch editieren und verwalten. Die Rechte, das Admin-Backend benutzen zu dürfen kann man im Terminal beim erstellen der Datenbank festlegen. Ist man "superuser" kann man diese Rechte auch an weiter User übertragen.
  22. Sicherheit
  23. \section{Erweiterungen}
  24. \subsection {Taggable-Manager}
  25. \section{Bootstrap}