DjangoDjango ist ein in Python geschriebenes Open Source Web-Framework, welches dem Model-View-Controller-Schema folgt. Dieses wird bei Django allerdings als Model-Template-View bezeichnet, das heißt ein Django view entspricht dem, was beim MVC Schema ein Controller ist. Es gibt sehr gute Dokumentation zu Django (siehe die Links am Ende dieser Seite), weshalb im Folgenden lediglich ein Schnellstart geschildert ist. InstallationDie normale Installation unter Ubuntu-basierten Linuxversionen erfolgt mit sudo aptitude install python-django ipython Alternativ kann jedoch auch die aktuellste Version von der Projektwebseite heruntergeladen werden https://www.djangoproject.com/download/. Nach der Installation sollte diese getestet werden $ ipython In [1]: import django In [2]: django.VERSION Out[2]: (1, 0, 2, 'final', 0) wobei der Output die jeweils installierte Version angibt, die natürlich nicht stets mit dem obigen Beispiel übereinstimmt. Zusätzlich muß das gewünschte Datenbankbackend installiert werden. Für MySQL ist das sudo aptitude install python-mysqldb mysql-server und für PostgreSQL sudo aptitude install python-psycopg2 postgresql-8.3Weitere Details zur Installation und Einrichtung der beiden Datenbanken findet sich in den betreffenden Abschnitten des Linux Administrationskurses: MySQL Datenbankserver und PostgreSQL Datenbankserver. Erstellen eines ProjektsEine Django Applikation gehört in der Regel zu einem Django Projekt, weshalb zuerst ein Projekt erstellt werden muss. Dazu sollte man vorerst ein Verzeichnis für sämtliche Projekte erstellen und danach darin ein neues Projekt erstellen. Im Folgenden wird ein System zur Verwaltung der Bücher einer kleinen Bibliothek als Projekt erstellt, weshalb das Projekt "library" getauft wird. mkdir ~/django cd ~/django django-admin startproject library Der Befehl cd library chmod u+x manage.py ./manage.py runserver Der Server hört per Default nur auf Zugriffe auf das loopback Device des lokalen Computers auf Port 8000 (zum Testen einfach http://localhost:8000 in einem Webbrowser öffnen). Wird ein anderer Port benötigt oder soll auch auf andere IP Adressen des lokalen Computers gelauscht werden, so muss dies als Argument angegeben werden: ./manage.py runserver ip_address:port_number Soll zum Beispiel auf allen Interfaces auf Port 1080 gelauscht werden, so ist ./manage.py help Nachdem nun das Projekt gestartet ist beginnt man mit dem Anpassen der Datei $ ipython In [1]: from django.db import connection In [2]: cursor = connection.cursor() Wenn die obigen Kommandos keinen Output haben, so hat die Verbindung zur Datenbank fehlerfrei funktioniert. Der nächste Schritt ist dann bereits das Erstellen einer ersten Django Applikation im vorhandenen Projekt (ein Projekt kann mehr als eine Applikation umfassen). Eine mögliche Anwendung für die Bibliothek ist eine Benutzerverwaltung. Starten einer neuen Applikation./manage.py startapp users Zuerst sind die Datentabellen in Form von Django Modellen zu definieren. Dazu ist die Datei # users/models.py from django.db import models class User(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) address = models.CharField(max_length=100) def __unicode__(self): return u'%s %s' % (self.first_name, self.last_name) Daraufhin muss die Applikation in die Liste der Applikationen des Projekts in # settings.py # ... INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'library.users', )Gleich danach kann die Datenbank synchronisiert werden, was in diesem Fall gleichbedeutend mit dem Erstellen der Datentabellen ist. Davor sollte man aber noch checken, ob die definierten Modelle valide sind und kann sich gegebenenfalls den erstellten SQL Code ansehen. ./manage.py validate ./manage.py sqlall users ./manage.py syncdb Nach dem Erstellen der Modelle kann man diese auch direkt in der Datenbankumgebung begutachten, was aber keine Voraussetzung für das Weiterarbeiten ist. ./manage.py dbshell Es ist wichtig zu verstehen, dass # users/views.py from models import User from django.shortcuts import render_to_response def list(request): users = User.objects.all() return render_to_response('users/list.html', locals()) Nach dem Programmieren des Views ist dieser in urls.py einzutragen und natürlich noch eine zugehörige Template (im obigen Beispiel # urls.py # ... urlpatterns = patterns('library.users.views', url('^users/$', 'list', name="list"), ) Aktivieren und Konfigurieren des Admin InterfacesDjango inkludiert eine praktische Administrationsoberfläche, welche einfach zu aktivieren ist. Zuerst müssen die betreffenden Zeilen in # urls.py # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() # ... # Uncomment the next line to enable the admin: (r'^admin/(.*)', admin.site.root), ) Danach ist die Admin-Applikation in settings.py in der Liste der installierten Applikationen einzutragen. # settings.py # ... INSTALLED_APPS = ( # ... 'django.contrib.admin', ) Nun ist die Datenbank nocheinmal zu synchronisieren, wobei auch gleich ein Administrationsbenutzer erstellt wird. ./manage.py syncdb Nun sollte der Admin (sofern der Entwicklungsserver läuft) bereits unter http://localhost:8000/admin zur Verfügung stehen. Die eigene Anwendung muss jedoch erst in den Admin inkludiert werden. Dazu ist eine # users/admin.py from django.contrib import admin from library.users.models import User # class UserAdmin(admin.ModelAdmin): # configuration goes here admin.site.register(User) LinksHier folgt eine (unsortierte) Aufstellung einiger der im Kurs gezeigten Webseiten:
Copyright © 2009-2023 Gerald Senarclens de Grancy Haftungsausschluss: Da ich keinerlei Einfluss auf den Inhalt der Seiten, zu denen ich von meiner Homepage linke, habe, übernehme ich auch keinerlei Haftung für diese Seiten. |