Feature-Tour: Welches Django-Feature steckt wo?
Jede Zeile nennt ein Feature, die Datei im Projekt und eine Stelle zum Ausprobieren.
| Feature | Datei | Ausprobieren |
|---|---|---|
| Einstellungen, Apps, Middleware-Kette | schulung/settings.py |
Kommentare lesen |
URL-Verteilung, include, Namensraeume |
schulung/urls.py, bibliothek/urls.py |
Adresszeile beobachten |
| Modelle, Felder, Beziehungen, Meta, Constraints | bibliothek/models.py |
Buchliste |
| Migrationen | bibliothek/migrations/ |
manage.py showmigrations |
| ORM: filter, Q, annotate, aggregate, N+1 | bibliothek/management/commands/orm_spielwiese.py |
manage.py orm_spielwiese --sql |
| Eigener QuerySet/Manager | BuchQuerySet in models.py |
nur verfuegbare |
| Admin: Listen, Filter, Inlines, Aktionen | bibliothek/admin.py |
/admin/ |
| Funktionsbasierte View | autor_liste in views.py |
Autoren |
| Klassenbasierte Views (List, Detail, Create, Update, Delete) | BuchListe ff. in views.py |
Buecher |
| Template-Vererbung und Bloecke | templates/base.html |
Quelltext der Seite ansehen |
| Eigene Filter, simple_tag, inclusion_tag | bibliothek/templatetags/bibliothek_extras.py |
Sterne auf einer Buchseite |
| Formulare: Form, ModelForm, Validierung | bibliothek/forms.py |
Buch anlegen (Login noetig) |
| CSRF-Schutz | {% csrf_token %} in jedem POST-Formular |
Token im Quelltext suchen |
| Messages-Framework | views.py + base.html |
Buch speichern, Meldung beachten |
| Seitenaufteilung (Pagination) | paginate_by in BuchListe |
Seite 2 |
| Authentifizierung, Login/Logout, Zugriffsschutz | django.contrib.auth.urls, @login_required, LoginRequiredMixin |
Anmelden als leser/demo1234 |
| Sessions | BuchDetail._merken |
Mehrere Buecher oeffnen, "Zuletzt angesehen" |
| Signale | bibliothek/signals.py |
Buch ausleihen, Terminalausgabe beachten |
| Eigene Middleware | schulung/middleware.py |
Header X-Dauer-Ms in den Entwicklerwerkzeugen |
| Context-Prozessor | schulung/context_processors.py |
Fusszeile: Django-Version |
| Statische Dateien | static/stil.css |
Farbe aendern, neu laden |
| Eigene Management-Befehle | bibliothek/management/commands/ |
manage.py demo_daten --help |
| JSON statt HTML | buch_als_json in views.py |
Buch oeffnen, dort "als JSON" |
| Tests | bibliothek/tests.py |
manage.py test |
Und wenn etwas nicht klappt?
python manage.py check– prueft die Konfiguration.- Bei
DEBUG = Truezeigt die Fehlerseite den vollstaendigen Weg der Anfrage samt Variablen. python manage.py shell– Modelle interaktiv ausprobieren.