Anleitung für eine settings.py 

© Julian Moritz, 16.05.2009, JulianMoritz.de: Anleitung für eine settings.py bei AditSystems, mit Anpassungen © 2011

Einführung

Ich konnte in den letzten Wochen bei dem bisher einzigen deutschen Hoster für Django einige Erfahrungen sammeln, was das Erstellen von Django-Applikationen angeht. Da es anfangs immer wieder zu ärgerlichen Fehlern gekommen ist und das Debuggen durch eine fehlende Konsole nicht gerade erleichtert wird, habe ich diese Anleitung verfasst.

Grundsätzliches

In einer brauchbaren settings.py-Datei sollte natürlich die Prinzipien von Django befolgt werden. Dazu benutze ich nirgends absolute hardkodierte Pfade. Außerdem will man vielleicht mitloggen können, was so passiert, damit man Fehler einfacher analyisieren kann als nur in der error-Logdatei.

Voreinstellungen

Für unser Beispiel nehmen wir die Domain beispiel.de. Die Domain wurde also im Confixx angelegt und es existiert das Verzeichnis /html/beispielde (ich gehe einfach mal von meiner eigenen Namenskonvention aus). In diesem Verzeichnis liegen nun drei Dateien:

Die beiden ersten Dateien sind für das Laufen der Django-Applikation wichtig, die letztere, um zu verhindern, das bei einem Upload von neuen Dateien alte Daten verwendet werden.

Und dann muss in dem Verzeichnis noch ein weiteres Verzeichnis static angelegt werden. Dort werden nun die Inhalte aus dem Verzeichnis hochgeladen, auf das MEDIA_ROOT in der settings.py verweist.

Installation

Nun wird im Verzeichnis /files/ das verzeichnis beispielde angelegt und dorthin gewechselt. Dorthin wird nun die komplette Django-Applikation hochgeladen (natürlich außer dem Verzeichnis aus MEDIA_ROOT). Darauf nur noch die URL http://www.beispiel.de/reloadpython.php aufrufen und hoffen, das alles funktioniert.

Konfiguration

Und damit alles halbwegs reibungslos funktioniert, hier meine

Bei mir sieht das wie folgt aus:

from django.conf import settings
import os
import logging
 
DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = os.path.join(settings.PROJECT_ROOT, 'database.sqlite')             # Or path to database file if using sqlite3.
DATABASE_USER = ''             # Not used with sqlite3.
DATABASE_PASSWORD = ''         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
 
# url to static_content dir with trailing slash!
MEDIA_URL = "/static/"
 
#settings for server
ADMIN_MEDIA_PREFIX = MEDIA_URL + 'admin_media/'
 
#setting MEDIA_ROOT
BASE_NAME = os.path.basename(settings.PROJECT_ROOT)
MEDIA_ROOT = os.path.abspath(os.path.join(settings.PROJECT_ROOT, "../../html/", BASE_NAME, MEDIA_URL[1:]))
 
ADMINS = (
		("Max Mustermann", "admin@beispiel.de", ),
	)