Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Überblick über Python
3 Die Arbeit mit Python
4 Der interaktive Modus
5 Grundlegendes zu Python-Programmen
6 Kontrollstrukturen
7 Das Laufzeitmodell
8 Basisdatentypen
9 Benutzerinteraktion und Dateizugriff
10 Funktionen
11 Modularisierung
12 Objektorientierung
13 Weitere Spracheigenschaften
14 Mathematik
15 Strings
16 Datum und Zeit
17 Schnittstelle zum Betriebssystem
18 Parallele Programmierung
19 Datenspeicherung
20 Netzwerkkommunikation
21 Debugging
22 Distribution von Python-Projekten
23 Optimierung
24 Grafische Benutzeroberflächen
25 Python als serverseitige Programmiersprache im WWW mit Django
26 Anbindung an andere Programmiersprachen
27 Insiderwissen
28 Zukunft von Python
A Anhang
Stichwort

Download:
- ZIP, ca. 4,8 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Python von Peter Kaiser, Johannes Ernesti
Das umfassende Handbuch - Aktuell zu Python 2.5
Buch: Python

Python
gebunden, mit CD
819 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1110-9
Pfeil 25 Python als serverseitige Programmiersprache im WWW mit Django
  Pfeil 25.1 Installation
  Pfeil 25.2 Konzepte und Besonderheiten im Überblick
  Pfeil 25.3 Erstellen eines neuen Django-Projekts
  Pfeil 25.4 Erstellung der Applikation
  Pfeil 25.5 Djangos Administrationsoberfläche
  Pfeil 25.6 Unser Projekt wird öffentlich
  Pfeil 25.7 Djangos Template-System
  Pfeil 25.8 Verarbeitung von Formulardaten


Galileo Computing - Zum Seitenanfang

25.5 Djangos Administrationsoberfläche  topZur vorigen Überschrift

Eine der zeitaufwendigsten Aufgaben bei der Erstellung einer Webanwendung ist die Entwicklung einer sogenannten Administrationsoberfläche, kurz ACP (engl. Admin Control Panel). ACPs sind Werkzeuge, die den Betreibern einer Seite das nachträgliche Verändern der Seiteninhalte ermöglichen, ohne den Programmcode zu verändern oder direkt auf die Datenbank zuzugreifen.

Beispielsweise sollte ein ACP einer Nachrichtenseite neue Meldungen hinzufügen und alte bearbeiten oder löschen können. Ebenso wäre eine Administrationsoberfläche für die Erstellung von Umfragen zu aktuellen Themen denkbar.

Im Prinzip ist ein ACP eine eigene Webanwendung, mit der sich alle Daten der zu administrierenden Anwendung bearbeiten lassen. Dementsprechend hoch ist auch der Entwicklungsaufwand.

Die gute Nachricht für Sie als angehenden Django-Entwickler ist, dass Sie sich in Ihren Projekten nur wenig um die Programmierung von ACPs kümmern müssen. Django erstellt fast vollautomatisch eine komfortable und zweckmäßige Administrationsoberfläche, sodass Sie von der lästigen Eigenimplementation verschont bleiben. Sie müssen nur kleine Änderungen an Ihrem Datenmodell und der Konfiguration des Projekts vornehmen.

Zuerst müssen Sie die Applikation mit dem Namen "django.contrib.admin" in das INSTALLED_APPS-Tupel der settings.py Ihres Projekts einfügen, die Django bereits mitliefert:

INSTALLED_APPS = ( 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'unser_projekt.news', 
    'django.contrib.admin' 
)

Da die Administrationsapplikation zusätzliche Tabellen in der Datenbank benötigt, müssen Sie noch einmal das manage.py-Script mit dem Parameter syncdb starten:

$ python manage.py syncdb

In der models.py muss jede Modellklasse, für die es ein ACP geben soll, in ihrem Körper eine Klasse namens Admin definieren, die im einfachsten Fall nur ein pass enthält. Im ersten Schritt machen wir nur die Meldung-Klasse über das ACP zugänglich: [Lassen Sie sich nicht durch das fehlende (object) verwirren. Django verwendet noch old-style classes. ]

class Meldung(models.Model): 
    ... 
    class Admin: 
        pass

Die letzte zur Einrichtung eines ACPs notwendige Änderung betrifft die Datei urls.py, in der wir das Kommentarzeichen für eine bestimmte Zeile entfernen müssen. Die fertige urls.py sieht dann so aus:

from django.conf.urls.defaults import * 
urlpatterns = patterns('', 
    # Uncomment this for admin: 
    (r'^admin/', include('django.contrib.admin.urls')), 
)

Auch wenn Sie jetzt wahrscheinlich noch nicht verstehen, was der Inhalt der Datei konkret bedeutet, ist das kein Problem. Wir werden sehr bald die Funktionsweise dieser Datei im Detail behandeln.

Nun können wir bewundern, was Django als Administrationsoberfläche für unsere Anwendung gezaubert hat. Dazu starten Sie einfach den Entwicklungswebserver mit python manage.py runserver und besuchen mit Ihrem Webbrowser die Adresse http://127.0.0.1:8000/admin. Beim Login-Prompt geben Sie die Benutzerdaten ein, die Sie beim ersten Lauf von python manage.py syncdb angegeben haben. Anschließenden präsentiert sich Ihnen eine schicke Administrationsmaske:

Abbildung 25.7  Startseite des Django-ACPs

Uns interessiert hier nur die unterste der drei Sektionen, mit deren Hilfe wir unsere News-Meldungen bearbeiten können. Wenn Sie auf »Meldungs« [Django bildet den Plural immer durch Anhängen eines »s«. Dies ist manchmal nicht sehr sinnvoll, wie obiges Beispiel zeigt. ] klicken, gelangen Sie zur Übersicht aller gespeicherten Meldungen (siehe Abbildung 25.8).

Abbildung 25.8  Alle gespeicherten Meldungen

Über die Administrationsoberfläche können Sie jede Meldung editieren, neue Meldungen hinzufügen und Meldungen löschen. Wie Sie sehen können, hat Django für die Anzeige der Meldungen die __unicode__-Methode des Models verwendet.

Da die Handhabung des ACPs sehr einfach ist, wollen wir uns als Beispiel mit dem Verändern einer Meldung begnügen.

Wir klicken beispielsweise auf die Meldung mit dem Text »Wie findet ihr das Framework?« und gelangen so zur Editieransicht. Dort werden wir als Demonstration den Text in »Wie findet ihr das Django-Framework?« umändern (siehe Abbildung 25.9).

Abbildung 25.9  Editieren ener Meldung

Nach dem Klick auf die Schaltfläche Sichern in der Ecke rechts unten ist die Meldung mit ihrem neuen Text in der Datenbank gespeichert, und Sie gelangen wieder zur Meldungsübersicht.

Als interessantes Feature speichert Django zu jedem Datensatz seine »Veränderungsgeschichte«, also wann wer welche Änderung an den Daten vorgenommen hat. Dieses Extra ist vor allem dann nützlich, wenn viele Leute Zugang zu der Administrationsseite haben und man den Überblick über die vorgenommenen Änderungen behalten möchte. Die Veränderungen zu einem bestimmten Datensatz können über die Schaltfläche Geschichte abgerufen werden.

Sie sollten sich vor Augen halten, welchen großen Nutzen dieser Service von Django hat: Aus einer einfachen Model-Definition werden die gesamte Datenbank und sogar das dazugehörige Verwaltungswerkzeug generiert. Diese Arbeit hätte Sie sonst Stunden gekostet.

Natürlich bietet das Django-ACP unzählige weitere Konfigurationsmöglichkeiten, die im Rahmen dieses Buchs nicht besprochen werden können. Wir verweisen Sie wieder einmal auf die sehr gute Dokumentation der Django-Homepage (http://www.djangoproject.com), wenn Sie weitere Informationen suchen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Python
Python
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Einstieg in Python






 Einstieg in Python


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Python 3






 Python 3


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: jQuery






 jQuery


Zum Katalog: CSS






 CSS


Zum Katalog: Einstieg in XML






 Einstieg in XML


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de