This commit is contained in:
Clemens-Dautermann 2019-01-31 16:51:49 +01:00
parent 0b5a3c257e
commit 3cb1dc79e7
5 changed files with 40 additions and 20 deletions

View file

@ -18,12 +18,12 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.2}apps.py}{8}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.2}apps.py}{8}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.3}forms.py}{8}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.3}forms.py}{8}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.4}models.py}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.4}models.py}{9}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.5}tests.py}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.5}tests.py}{10}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.6}views.py}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.6}views.py}{10}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.7}migrations}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.7}migrations}{10}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Routing in Django}{9}} \@writefile{toc}{\contentsline {section}{\numberline {3}Routing in Django}{10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Root Url Config}{9}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Root Url Config}{10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Weitere Url Konfigurationsdateien}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Weitere Url Konfigurationsdateien}{11}}
\gdef\minted@oldcachelist{, \gdef\minted@oldcachelist{,
default-pyg-prefix.pygstyle, default-pyg-prefix.pygstyle,
default.pygstyle, default.pygstyle,
@ -33,9 +33,10 @@
D608A7419D2E2B1B9DC8374CBF30931C47D599A9433F896BEC25BBDC7D4D3BE9.pygtex, D608A7419D2E2B1B9DC8374CBF30931C47D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
90BB626EF9CFA5AAE8FC387BE92CE4C047D599A9433F896BEC25BBDC7D4D3BE9.pygtex, 90BB626EF9CFA5AAE8FC387BE92CE4C047D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
69FD008A06C526EA627001AB2D9375FA47D599A9433F896BEC25BBDC7D4D3BE9.pygtex, 69FD008A06C526EA627001AB2D9375FA47D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
C16B4A697A35E1BE87FC42461038F02647D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
A055FD522A0AEB526BEA0D243A3FBE3647D599A9433F896BEC25BBDC7D4D3BE9.pygtex, A055FD522A0AEB526BEA0D243A3FBE3647D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
AFBBA6C854D3F40D46E4B39281586D0347D599A9433F896BEC25BBDC7D4D3BE9.pygtex} AFBBA6C854D3F40D46E4B39281586D0347D599A9433F896BEC25BBDC7D4D3BE9.pygtex}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}View}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}View}{12}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Template rendering}{11}} \@writefile{toc}{\contentsline {section}{\numberline {4}Template rendering}{12}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Den Inventarisierungsserver einrichten}{11}} \@writefile{toc}{\contentsline {section}{\numberline {5}Den Inventarisierungsserver einrichten}{12}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Erkl\IeC {\"a}rung der Benutzeroberfl\IeC {\"a}che}{11}} \@writefile{toc}{\contentsline {section}{\numberline {6}Erkl\IeC {\"a}rung der Benutzeroberfl\IeC {\"a}che}{12}}

Binary file not shown.

Binary file not shown.

View file

@ -188,6 +188,25 @@ class CategoryForm(ModelForm):
\end{minted} \end{minted}
Hier werden zwei Formulare definiert. Es wird angegeben mit welchem model das Formular asoziiert werden soll und welche Felder angezeigt werden sollen. Außerdem wird definiert, dass für das name und das title Feld ein ''TextInput()'' Feld genutzt werden soll. Hier werden zwei Formulare definiert. Es wird angegeben mit welchem model das Formular asoziiert werden soll und welche Felder angezeigt werden sollen. Außerdem wird definiert, dass für das name und das title Feld ein ''TextInput()'' Feld genutzt werden soll.
\subsubsection{models.py} \subsubsection{models.py}
In der models.py werden Models definiert, die in Verbindung mit der Datenbank genutzt werden können. Diese werden innerhalb von Django als Objekte repräsentiert, können jedoch trotzdem in einer SQL Datenbank gespeichert werden. Eine mopels.py kann beispielsweise folgendermaßen aussehen:
\begin{minted}[linenos, frame=lines, framesep=2mm]{Python}
from django.db import models
import uuid
class Category(models.Model):
name = models.TextField(blank=False, max_length=150)
id = models.UUIDField(
primary_key=True, default=uuid.uuid4, editable=False
)
categories = models.Manager()
def __str__(self):
return self.name
\end{minted}
In dieser Datei wird ein Model definiert. Es heißt ''Category'' und hat zwei Eigenschaften. Eine ID und einen Namen. Es wird dafür erst eine Klasse namens ''Category'' erstellt, die Subklasse der django.db.models.model Klasse ist. In dieser Klasse werden jetzt die Datenfelder des Objektes definiert, diese sind später in der Datenbank die Spalten. den Datenfeldern können sogenannte Felder zugewiesen werden, die angeben welcher Datentyp in dieser Spalte steht\footnote{ Django Model field reference https://docs.djangoproject.com/en/2.1/ref/models/fields/}. Ein UUIDField fasst zum Beispiel eine UUID, ein TextField Text ein DateField ein Datum und so weiter. Der Parameter ''blank'' gibt an ob das Feld bei der Erstellung des Objektes blank gelassen werden darf. ''max\_length'' ist ein für das TextField spezifischer Parameter, die maximale Länge des Strings angibt, der gespeichert werden kann. ''primary\_key'' gibt an ob dieses Feld der primary Key in der Datenbank ist. Dieser Wert kann nur einem Feld zugewiesen werden. Wenn kein Feld als primary Key gesetzt wurde, erstellt Django automatisch ein ID Feld, das dann primary Key ist. Der ''default'' Wert gibt an, Welcher Standardwert in das Feld eingespeichert werden soll, wenn vom Nutzer kein Wert übergeben wurde. ''editable'' gibt an, ob das Feld manuell bearbeitet werden kann, zum Beispiel im admin Interface.\newline
der Aufruf ''categories = models.Manager()'' ist notwendig um via ''categories = Category.categories.all()'' alle Kategorien auf einmal als Liste abfragen zu können.\newline
''def \_\_str\_\_(self):'' ist eine sogenannte ''magic method'' in Python. Sie ermöglicht es anzugeben, wie das Objekt als String repräsentiert werden soll. Wenn also ''print(category)'' aufgerufen wird, wird aufgrund dieser Methode an stelle des primary Keys, der UUID, der Name ausgegeben.
\subsubsection{tests.py} \subsubsection{tests.py}
\subsubsection{views.py} \subsubsection{views.py}
\subsubsection{migrations} \subsubsection{migrations}

View file

@ -14,13 +14,13 @@
\contentsline {subsubsection}{\numberline {2.5.2}apps.py}{8} \contentsline {subsubsection}{\numberline {2.5.2}apps.py}{8}
\contentsline {subsubsection}{\numberline {2.5.3}forms.py}{8} \contentsline {subsubsection}{\numberline {2.5.3}forms.py}{8}
\contentsline {subsubsection}{\numberline {2.5.4}models.py}{9} \contentsline {subsubsection}{\numberline {2.5.4}models.py}{9}
\contentsline {subsubsection}{\numberline {2.5.5}tests.py}{9} \contentsline {subsubsection}{\numberline {2.5.5}tests.py}{10}
\contentsline {subsubsection}{\numberline {2.5.6}views.py}{9} \contentsline {subsubsection}{\numberline {2.5.6}views.py}{10}
\contentsline {subsubsection}{\numberline {2.5.7}migrations}{9} \contentsline {subsubsection}{\numberline {2.5.7}migrations}{10}
\contentsline {section}{\numberline {3}Routing in Django}{9} \contentsline {section}{\numberline {3}Routing in Django}{10}
\contentsline {subsection}{\numberline {3.1}Root Url Config}{9} \contentsline {subsection}{\numberline {3.1}Root Url Config}{10}
\contentsline {subsection}{\numberline {3.2}Weitere Url Konfigurationsdateien}{10} \contentsline {subsection}{\numberline {3.2}Weitere Url Konfigurationsdateien}{11}
\contentsline {subsection}{\numberline {3.3}View}{11} \contentsline {subsection}{\numberline {3.3}View}{12}
\contentsline {section}{\numberline {4}Template rendering}{11} \contentsline {section}{\numberline {4}Template rendering}{12}
\contentsline {section}{\numberline {5}Den Inventarisierungsserver einrichten}{11} \contentsline {section}{\numberline {5}Den Inventarisierungsserver einrichten}{12}
\contentsline {section}{\numberline {6}Erkl\IeC {\"a}rung der Benutzeroberfl\IeC {\"a}che}{11} \contentsline {section}{\numberline {6}Erkl\IeC {\"a}rung der Benutzeroberfl\IeC {\"a}che}{12}