Dokumentation
This commit is contained in:
parent
9fab789acf
commit
0a3d0c7a87
5 changed files with 68 additions and 40 deletions
|
|
@ -3,11 +3,18 @@
|
|||
\babel@aux{ngerman}{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{3}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Struktur}{3}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Erstellung}{3}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Verzeichnisstruktur, die der \$ django-admin startproject server Befehl erzeugt}}{3}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Die typische Verzeichnisstruktur eines Django Servers}}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Erstellung}{4}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Verzeichnisstruktur, die der \$ django-admin startproject server Befehl erzeugt}}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}manage.py}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}db.sqlite3}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}server/server}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}\_\_init\_\_.py}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}settings.py}{4}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Die typische Verzeichnisstruktur eines Django Servers}}{4}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}db.sqlite3}{5}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}server/server}{5}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}\_\_init\_\_.py}{5}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}settings.py}{5}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.3}urls.py}{5}}
|
||||
\gdef\minted@oldcachelist{,
|
||||
default-pyg-prefix.pygstyle,
|
||||
default.pygstyle,
|
||||
1EF5F198DB11D884A8F3F8166C390F5847D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
|
||||
20EC931F8490D378180FA3F951C421E447D599A9433F896BEC25BBDC7D4D3BE9.pygtex,
|
||||
C979C1D44B204897A3DDD0DB9A0A5E7147D599A9433F896BEC25BBDC7D4D3BE9.pygtex}
|
||||
|
|
|
|||
BIN
doc/Django.pdf
BIN
doc/Django.pdf
Binary file not shown.
Binary file not shown.
|
|
@ -5,6 +5,7 @@
|
|||
\usepackage{libertine}
|
||||
\usepackage{dirtree}
|
||||
\usepackage{float}
|
||||
\usepackage{minted}
|
||||
|
||||
\pagestyle{fancy}
|
||||
|
||||
|
|
@ -39,34 +40,8 @@ Django stellt eine grundlegende Struktur für die Entwicklung zur Verfügung. So
|
|||
Es ist also kaum notwendig, jedoch durchaus möglich, als Entwickler noch SQL zu schreiben wenn man mit dem Django Web-Framework entwickelt.
|
||||
|
||||
\section{Struktur}
|
||||
Ein typischer Django Server ist aus sogenannten ''Apps'' aufgebaut. Diese werden entweder vom Entwickler selber geschrieben oder können via pip (dem Python Paket Manager) installiert werden. Ein standard Verzeichnisaufbau ist in Abbildung 2 dargestellt.
|
||||
\subsection{Erstellung}
|
||||
Ein Django Projekt kann mit dem Befehl \$ django-admin startproject server initialisiert werden. Dadurch wird folgende Ordnerstruktur erstellt:
|
||||
\begin{figure}[H]
|
||||
\dirtree{%
|
||||
.1 server.
|
||||
.2 manage.py.
|
||||
.2 server.
|
||||
.3 \_\_init\_\_.py.
|
||||
.3 settings.py.
|
||||
.3 urls.py.
|
||||
.3 wsgi.py.
|
||||
}
|
||||
\caption{Verzeichnisstruktur, die der \$ django-admin startproject server Befehl erzeugt}
|
||||
\end{figure}
|
||||
\subsection{manage.py}
|
||||
Die manage.py wird, wie der Name schon sagt, verwendet um den Server zu verwalten. Mit Hilfe der manage.py können beispielsweise Migrierungen an der Datenbank erstellt werden, Datenbanknutzer erstellt werden oder der Testserver zur Entwicklung kann gestartet werden. Die gleiche Funktionalität stellt auch der django-admin Befehl zur Verfügung\footnote{Django Dokumentation https://docs.djangoproject.com/en/2.1/ref/django-admin/}.
|
||||
|
||||
\subsection{db.sqlite3}
|
||||
In dieser Datei wird die SQL Datenbank gespeichert, die der Server nutzt. Sie wird automatisch erstellt. Es können jedoch auch andere Datenbanken, wie zum Beispiel MongoDB oder eine extern gehostete Datenbank, verwendet werden.
|
||||
|
||||
\subsection{server/server}
|
||||
\subsection{\_\_init\_\_.py}
|
||||
Diese Datei befindet sich im Wurzelverzeichnis jeder App. Sie macht für Python erkennbar, dass es sich bei dem Inhalt dieses Ordners um ein Python Modul handelt. Somit kann die App einfach geteilt und von anderen Nutzern verwendet werden.
|
||||
|
||||
\subsection{settings.py}
|
||||
|
||||
|
||||
Ein typischer Django Server ist aus sogenannten ''Apps'' aufgebaut. Diese werden entweder vom Entwickler selber geschrieben oder können via pip (dem Python Paket Manager) installiert werden. Ein standard Verzeichnisaufbau ist in Abbildung 1 dargestellt.
|
||||
\newpage
|
||||
\begin{figure}[H]
|
||||
\dirtree{%
|
||||
.1 server.
|
||||
|
|
@ -92,6 +67,51 @@ Diese Datei befindet sich im Wurzelverzeichnis jeder App. Sie macht für Python
|
|||
\caption{Die typische Verzeichnisstruktur eines Django Servers}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Erstellung}
|
||||
Ein Django Projekt kann mit dem Befehl \$ django-admin startproject server initialisiert werden. Dadurch wird folgende Ordnerstruktur erstellt:
|
||||
\begin{figure}[H]
|
||||
\dirtree{%
|
||||
.1 server.
|
||||
.2 manage.py.
|
||||
.2 server.
|
||||
.3 \_\_init\_\_.py.
|
||||
.3 settings.py.
|
||||
.3 urls.py.
|
||||
.3 wsgi.py.
|
||||
}
|
||||
\caption{Verzeichnisstruktur, die der \$ django-admin startproject server Befehl erzeugt}
|
||||
\end{figure}
|
||||
\subsection{manage.py}
|
||||
Die manage.py wird, wie der Name schon sagt, verwendet um den Server zu verwalten. Mit Hilfe der manage.py können beispielsweise Migrierungen an der Datenbank erstellt werden, Datenbanknutzer erstellt werden oder der Testserver zur Entwicklung kann gestartet werden. Die gleiche Funktionalität stellt auch der django-admin Befehl zur Verfügung\footnote{Django Dokumentation https://docs.djangoproject.com/en/2.1/ref/django-admin/}.
|
||||
|
||||
\subsection{db.sqlite3}
|
||||
In dieser Datei wird die SQL Datenbank gespeichert, die der Server nutzt. Sie wird automatisch erstellt. Es können jedoch auch andere Datenbanken, wie zum Beispiel MongoDB oder eine extern gehostete Datenbank, verwendet werden.
|
||||
|
||||
\subsection{server/server}
|
||||
\subsubsection{\_\_init\_\_.py}
|
||||
Diese Datei befindet sich im Wurzelverzeichnis jeder App. Sie macht für Python erkennbar, dass es sich bei dem Inhalt dieses Ordners um ein Python Modul handelt. Somit kann die App einfach geteilt und von anderen Nutzern verwendet werden.
|
||||
|
||||
\subsubsection{settings.py}
|
||||
In dieser Datei befinden sich die Einstellungen für den Django Server. Mit ihrer Hilfe werden Zeitzone, Sprache, Datenbankkonfiguration und viele andere Konfigurationen verwaltet. Man kann sie auch verwenden um eigene Einstellungsmöglichkeiten anzubieten. Dafür definiert man eine Konstante (in Python typischerweise durch Großbuchstaben ausgedrückt) und einen Wert. Zum Beispiel\newline LOGIN\_REDIRECT\_URL = ''/''. Im Falle dieses Projektes wurde beispielsweise die Konstante LOGFILE = 'serverlog.log' definiert um zentral auf die Logdatei zugreifen zu können. Auf die in der settings.py definierten Werte kann aus jeder App zugegriffen werden, indem unter Benutzung der Anweisung\newline
|
||||
\mintinline{Python}{from django.conf import settings } diese importiert wird. Anschließend kann via \mintinline{Python}{file = settings.LOGFILE} beispielsweise auf die Konstante LOGFILE zugegriffen werden.
|
||||
|
||||
\subsubsection{urls.py}
|
||||
Diese Datei ist der erste und wichtigste Teil des Django Routing Systems. Über sie werden die grundlegenden URL Strukturen des Servers definiert. Sie importiert urls.py Dateien aus anderen Apps und definiert wie auf eine Bestimmte URL reagiert werden soll. Im Falle dieses Projektes sieht sie folgendermaßen aus:
|
||||
|
||||
\begin{minted}[linenos,numbersep=5pt,frame=none,framesep=1mm]{Python}
|
||||
from django.contrib import admin
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('accounts/', include('django.contrib.auth.urls')),
|
||||
path('', include('user_manager.urls')),
|
||||
path('add/', include('object_adder.urls')),
|
||||
path('list/', include('object_lister.urls')),
|
||||
path('settings/', include('settings_app.urls')),
|
||||
]
|
||||
\end{minted}
|
||||
Hier werden zuerst Pakete für das admin-Interface und Pakete für das URL-Routing importiert. Anschließend wird eine Liste urlpatterns definiert. Diese enthält alle URL Pfade.
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
\babel@toc {ngerman}{}
|
||||
\contentsline {section}{\numberline {1}Einleitung}{3}
|
||||
\contentsline {section}{\numberline {2}Struktur}{3}
|
||||
\contentsline {subsection}{\numberline {2.1}Erstellung}{3}
|
||||
\contentsline {subsection}{\numberline {2.1}Erstellung}{4}
|
||||
\contentsline {subsection}{\numberline {2.2}manage.py}{4}
|
||||
\contentsline {subsection}{\numberline {2.3}db.sqlite3}{4}
|
||||
\contentsline {subsection}{\numberline {2.4}server/server}{4}
|
||||
\contentsline {subsection}{\numberline {2.5}\_\_init\_\_.py}{4}
|
||||
\contentsline {subsection}{\numberline {2.6}settings.py}{4}
|
||||
\contentsline {subsection}{\numberline {2.3}db.sqlite3}{5}
|
||||
\contentsline {subsection}{\numberline {2.4}server/server}{5}
|
||||
\contentsline {subsubsection}{\numberline {2.4.1}\_\_init\_\_.py}{5}
|
||||
\contentsline {subsubsection}{\numberline {2.4.2}settings.py}{5}
|
||||
\contentsline {subsubsection}{\numberline {2.4.3}urls.py}{5}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue