@@ -1,4 +1,4 @@ | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 2 OCT 2018 19:22 | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 4 OCT 2018 21:57 | |||
entering extended mode | |||
\write18 enabled. | |||
file:line:error style messages enabled. | |||
@@ -1297,36 +1297,36 @@ Package babel Info: Redefining german shorthand "| | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 24. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 28. | |||
(babel) in language on input line 30. | |||
[6] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 30. | |||
(babel) in language on input line 32. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 30. | |||
(babel) in language on input line 32. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 30. | |||
(babel) in language on input line 32. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 31. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 31. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 31. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 32. | |||
(babel) in language on input line 55. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 32. | |||
(babel) in language on input line 55. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 32. | |||
(babel) in language on input line 55. | |||
) | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 58. | |||
@@ -1596,10 +1596,10 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 77. | |||
) | |||
(\end occurred when \ifnum on line 5 was incomplete) | |||
Here is how much of TeX's memory you used: | |||
26519 strings out of 492970 | |||
475695 string characters out of 6133939 | |||
545282 words of memory out of 5000000 | |||
30140 multiletter control sequences out of 15000+600000 | |||
26518 strings out of 492970 | |||
475681 string characters out of 6133939 | |||
546282 words of memory out of 5000000 | |||
30139 multiletter control sequences out of 15000+600000 | |||
553864 words of font info for 60 fonts, out of 8000000 for 9000 | |||
1348 hyphenation exceptions out of 8191 | |||
58i,11n,50p,10437b,822s stack positions out of 5000i,500n,10000p,200000b,80000s |
@@ -23,12 +23,35 @@ Der Prozess vom Anfragen der URL über den Server, bis hin zur fertig gerenderte | |||
\subsection {Besonderheiten} | |||
Das Django-Framework bringt einige Besonderheiten mit sich, die beim implementiern des Prototypen von Bedeutung sind. Diese werden im Folgenden beschrieben. | |||
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. | |||
Die Administratoroberfläche ist eines der hilfreichsten Werkzeugen 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. Das Recht, das Admin-Backend uneingeschränkt zu benutzen, ist dem sogenannten superuser vorenthalten. Dieser kann beim erstmaligen zuweisen nur über die Kommandozeile eingerichtet werden. Ist bereits ein superuser vorhanden, kann dieser im Admin-Backend weiteren Benutzern den gleichen Handlungsfreiraum einräumen. Zudem gibt es noch weitere Stufen der Zugangsberechtigungen, Staff- und Active-Status, die für eine breitere Gruppe von Benutzern geeignet ist. | |||
Um die gestaffelten Zugangsberechtigungen auch auf der Website umsetzen zu können, stellt Django ... zur Verfügung. | |||
Natürlich lassen sich die Dekorator auch für andere Zwecke vor Funktionen paltzieren. | |||
Sicherheit | |||
\section{Erweiterungen} | |||
Durch das hohe Ansehen, dass Django in der Branche genie"st ist der Pool an Erweiterungen gro"s. | |||
pip? | |||
allg Erweiterungen und dann genauer Taggable Manager | |||
\subsection {Taggable-Manager} | |||
Django-taggit ist eine Erweiterung von Alex Gaynor, einem Entwickler aus Washingtion DC. Das Add-on ermöglicht das Verwenden von Tags die automatisch mit einem eindeutigen Slug versehen werden. Um dieses zu installieren wird der folgende Befehl in die Kommandozeile eingefügt: | |||
\\ | |||
\noindent\hspace*{10mm}% | |||
\$ pip install django-taggit | |||
\\ | |||
Im model.py wird das Feld tag neu erstellt und als Taggable Manager definiert. | |||
Au"serdem muss taggit in der settings.py Datei unter INSTALLED\_APPS ergänzt werden. Um dem Programm zu sagen, dass nun eine neue Liste der Datenbank hinzugefügt werden muss, werden folgende Befehle in die Kommandozeile eingefügt: | |||
\\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py makemigrations \\ | |||
\noindent\hspace*{10mm}% | |||
\$ python3 manage.py migrate | |||
\\ | |||
Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde. Neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jedes Wort, dass durch ein Komma oder ein Leerzeichen getrennt ist als ein Tag. Soll ein dieses jedoch aus mehreren Wörtern bestehen so müssen diese zwischen Anführungszeichen stehen. Standardmäßig unterscheidet der Taggable Manager zwischen Groß- und Kleinschreibung, ist also case sensitive. Ändern kann man das, indem der Boolean TAGGIT\_CASE\_INSENSITIVE in der settings.py auf True gestellt wird. | |||
\section{Bootstrap} | |||