deleted studentpage and added code to bloglist view

This commit is contained in:
Esther Kleinhenz
2018-11-13 19:15:46 +01:00
parent 8fa768fd91
commit 18e4414c44
24 changed files with 373 additions and 213 deletions
@@ -53,7 +53,7 @@ Durch den einfachen Aufbau ist es au"serdem möglich diese selbst zu implementie
\subsection{Virtuelle Umgebung}
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv.
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Sie besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv.
\begin{figure}[!h]
\centering
@@ -75,6 +75,9 @@ Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hie
\hfill
\end{figure}
\subsection{Sicherheit}
--- in hochschulserver, django bringt sicherheiten mit, crsf-token
\section {Erweiterungen}
Django bringt viele hilfreiche Erweiterungen mit sich, die mit einem Packagemanager einfach in die virtuelle Umgebung geladen werden können. Um das passende Add-on für ein Projekt zu finden, bietet die Plattform djangopackages.org alle Erweiterungen in übersichtlichen Tabellen mit Eigenschaften und Bewertung an.
@@ -135,11 +135,13 @@ In der Detailansicht eines Artikels ist es möglich diesen durch klicken auf den
\\
Einen bereits vorhandenen Artikel bearbeiten:
Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Mit dem Betätigen des Bearbeiten-Buttons wird der User auf den Artikel-Editor weitergeleitet. Die Seite zeigt die Form, wie beim Erstellen eines neuen Artikels, nur dass hier die Felder bereits den Inhalt des zu Editierenden enthalten. Dazu wird in der View über den \textit{Primary Key} der Artikel einer Variable \glqq post\grqq\ zugeordnet. Daraufhin wird der instanziierte Post auf die \textit{PostForm} übertragen und in der Variable \glqq form \grqq\ zwischengespeichert. Nun werden die gleich Schritte durchlaufen, wie beim erstmaligen Erstellen eines Artikels (vgl. Abbildung 3.5.).
Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Mit dem Betätigen des Bearbeiten-Buttons wird der User auf den Artikel-Editor weitergeleitet. Die Seite zeigt die Form, wie beim Erstellen eines neuen Artikels, nur dass hier die Felder bereits den Inhalt des zu Editierenden Textes enthalten. Dazu wird in der View über den \textit{Primary Key} der Artikel einer Variable \glqq post\grqq\ zugeordnet. Die bedingte Anweisung fragt in Zeile 91 der Abbildung 3.5., ob der Benutzer die Eingaben bereits zum Speichern veranlasst hat. Wird die Bedingung zunächst nicht erfüllt, rendert die Funktion lediglich die \textit{PostForm}, mit dem bereits eingepflegten Inhalt durch eine GET-Abfrage in der die Daten des Artikels als Instanz übermittelt werden (vgl. Abbildung 3.5. Zeile 100).
Betätigt der Benutzer den \glqq Speichern-Button\grqq\ im Front-end wird die bedingte Abfrage in Zeile 91 erfüllt. Die POST-Abfrage ist hier notwendig, da Django nur so Daten in der Datenbank verändert. Eine Begründung hierfür ist die Art der Übertragung der Daten an den Server. \textit{POST-Requests} bündeln alle Daten, verschlüsseln diese und senden Sie dann an der Server (vgl. [Fou18c]). Dadurch ist der Vorgang einfacher kontrollierbar und mit einem \textit{csrf-Token} im Template ebenfalls gegen Cross-Site-Request-Fälschung abgesichert. Die weitere Vorgehensweise der Funktion ist identisch zum bereits erwähnten neu Erstellen eines Artikels und muss nicht weiter beschreiben.
\begin{figure}[!h]
\centering
\includegraphics[width=0.8\textwidth]{figures/post-edit-view}
\includegraphics[width=0.9\textwidth]{figures/post-edit-view}
\caption{Funktion post\_edit, Auszug aus views.py.}
\hfill
\end{figure}