\chapter{Framework} \label{ch:framework} 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, das 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 entscheidende Vorteil hierbei ist das dazugehörige Web-Framework Django, auf das im folgenden Kapitel genauer eingegangen wird. \section{Django} Django ist eine Erweiterung, die 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. 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]). auf die Daten vom Model zurück und das Model teilt der View mit, wenn sich Daten ändern. Da nun aber nahezu alle Aufgaben des Controllers von der View übernommen werden, \section{Erweiterung} \subsection {Taggable-Manager} \section{Bootstrap}