Anzeige
Anzeige
UX & Design
Artikel merken

Django – Das Python-Framework für schnelle Entwicklungsprozesse

Django ist mittlerweile das beliebteste Python-Framework und hier stelle ich es euch vor. Über Python gibt es viele Vorurteile: Es sei eine schwer zu verstehende Sprache, ungeeignet für Einsteiger und schwer zu konfigurieren. Doch sollte man diese Vorurteile mittlerweile in die Schublade „Museumsmentalität“ packen und sich einfach Mal einen Tag Zeit nehmen, um sich Django anzusehen. Denn Django bietet einige großartige Vorteile, die man nach einiger Zeit einfach nicht mehr missen möchte.

Von Sven Schannak
3 Min. Lesezeit
Anzeige
Anzeige
Django - Python-Framework

Django baut auf dem MVC-Prinzip auf, in einer etwas abgewandelten Form. Bei Django heiß das MVT –Model-View-Template. Die Views sind in diesem Fall eher ähnlich den Controllern und Templates kann man als Views ansehen. Django bietet eine umfangreiche Template-Sprache, einen Object-relational mapper, ein automatisch erzeugtes Admin-Interface und ein mit regulären Ausdrücken anpassbares URL-Design.

Was Django von der Konkurrenz unterscheidet

Anzeige
Anzeige

Im URL-Design unterscheidet sich Django klar von der Konkurrenz um Ruby-on-Rails und PHP-Frameworks. URLs müssen explizit angegeben werden und werden nicht automatisch über Verzeichnisse oder Dateien automatisch erstellt. Dieser Punkt stellt für viele Entwickler einen Knackpunkt dar. Doch erreicht Django damit auch eine erweiterte Modularität und vor allem wird dadurch der unbefugte Zugriff auf Dateien ein Riegel vorgeschoben. Module werden in sogenannten Apps erstellt. Diese sind komplett von der Logik der Hauptanwendung getrennt und haben eigene Angaben zu Modellen, Templates und URLs. All diese Dinge können aber auch individuell und problemlos angepasst werden.

Ein großer Vorteil liegt im ORM. Durch Hilfe des Object-Relational mapper kann man mit Hilfe weniger Zeilen im Code in den Models eine Datenbankstruktur anlegen und Django erzeugt automatisch das SQL für die Erstellung der Tabellen in verschieden Datenbankmodellen wie MySQL oder PostgreSQL und erstellt dann die entsprechenden Tabellen. Durch ORM geht auch das Handling der Modelle relativ leicht von der Hand. Das Problem sind hierbei Migrationen an der Datenbank, denn Django hat standardmäßig keine Migrationsmöglichkeiten, für dieses Problem gibt es aber bereits Möglichkeiten.

Anzeige
Anzeige

Des Weiteren sind die Programmlogiken und statische Daten, bzw. Media-Dateien strikt voneinander getrennt und können zum Beispiel auch auf verschiedenen Servern liegen. Zum Beispiel bei verschiedenen Cloud-Anbietern.

Anzeige
Anzeige
Django Models

Django Models

Die Einrichtung einer Entwicklungsumgebung für Django

Das Einrichten der passenden Entwicklungsumgebung geht nun auch relativ leicht von der Hand. Mit Hilfe von „Virtualenv“ kann der Entwickler sich eine von der Haupt-Python-Installation getrennte virtuelle Umgebung einrichten und mit Hilfe von PIP sich dementsprechend Django und Module nachinstallieren. Besonders leicht geht das unter Linux oder MacOSX von der Hand.

Templates in Django

Das Template-System in Django unterscheidet sich nicht großartig von bekannten Template-Engines wie Smarty für PHP. Es können Blöcke angelegt werden in der Form {% block title %}{% endblock %} für ein Basis-Template. Diese Blöcke können in Templates die dieses Basis-Template nutzen dementsprechend angepasst werden. Variablane aus den Modellen können mit dem Befehl {{ variable }} aufgerufen werden und Kontrollstrukten in der Form {% for x in y%}{% endfor %}. Der Vorteil durch die Template-Engine ist unvekennbar und unverzichtbar für eine strukturierte Zusammenarbeit mit einem entwicklungstechnisch unversierten Webdesigner.

Anzeige
Anzeige

Durch all diese Dinge wird Django zu einem flexiblen Framework, das langwierige und zum Teil stumpfsinnige Entwicklungsprozesse optimiert oder auch ganz abschafft. Und Optimierung sollte der Wunsch eines jeden Entwicklers sein.

Für mich persönlich ist Django wirklich eine Bereicherung für die Welt der Webentwickler und sollte daher auch von jedem einmal getestet werden. Ich habe mich überzeugen lassen von den Vorteilen Djangos und werde in Zukunft meine Projekte zum großen Teil mit Django realisieren. Auch kleinere Projekte, denn nach dem Einrichten einer guten Entwicklungsumgebung, lassen sich auch kleine Projekte schnell und einfach realisieren.

Was haltet ihr von Django und könntet ihr euch vorstellen von anderen Scriptsprachen und Frameworks auf Django zu wechseln ?

Links

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
11 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Thomas Quensen

Schöner Artikel, ich finde Python vor allem wegen der Syntax interessant und habe schon lange vor, mir das mal genauer anzusehen… finde nur nie die Zeit dafür.
Das, was du hier über Django schreibst erinnert mich aber sehr an Symfony2, vor allem das, was unter dem Punkt „Was Django von der Konkurrenz unterscheidet“ steht ;)

Auf jeden Fall hab ich jetzt wieder Lust bekommen, mich doch noch mal mit Python zu beschäftigen^^

Antworten
rob

Ich habe mein letztes Projekt auch mit Django umgesetzt. Ich kannte Python und einige PHP Webframeworks. Ich war von dem ORM Teil und dem automatischen Adminbereich schon sehr erstaunt. Mein Projekt war auch sehr schnell umgesetzt. Die meiste Arbeit war wirklich der HTML, CSS und JS Part. Alles, was ich in Python schreiben musste ging sehr schnell von der Hand und war auch recht einfach umzusetzen. Aber ich denke, dass ein Tag gut reicht um sich mit dem Framework mal auseinanderzusetzen um zu erkennen, welche Vorteile es bietet.

Antworten
Sven Schannak

@rob: Ich denke auch dass man ruhig mal einen Arbeitstag nutzen sollte um da reinzuschnuppern.

@ Thomas, ja da hast du Recht, manche Sachen sind auch schon woanders umgesetzt worden. Den größten Unterschied für Mich macht aber das explizite URL-Design aus.

Antworten
Thomas Quensen

@Sven Die explizite Definition der URLs in Django unterscheidet sich jetzt nicht sonderlich von der in Symfony. Im Vergleich zu den Django-Beispielen finde ich die Symfony2-Lösung noch eleganter. Hier mal ein Beispiel im YAML-Format:

example_route:
pattern: /example/{id}.{_format}
defaults: { _controller: „ExampleBundle:Example:show“, _format: ~ }
requirements: { id: „[0-9]+“, _format: „(html|pdf)“ }

In Symfony 1.x funktionierte das auf ähnliche Weise – das ist also kein expliziter Grund, um auf Django zu setzen ;)

Antworten
Sven Schannak

@Thomas, da gebe ich dir auch Recht, aber muss ich in Symfony auch jede URL explizit definieren ? Oder geht das auch über implizite Auswege ?

Antworten
Raphael

Ich kann Django wärmstens empfehlen. Ich komme aus der PHP/Drupal Ecke und wollte mal ein bisschen neues Territorium entdecken. Das Deployen auf einen produktiven Server ist/war zugegebenermassen nicht ganz einfach und auch jetzt blicke ich noch nicht ganz durch, aber sonst ist es super! Ich liebe das ORM und den vorgefertigen Admin bereich und auch wie die Templates aufgebaut sind.

Antworten
binnen

und wenn das admin noch schöner sein soll:
https://github.com/sehmaschine/django-grappelli
http://code.google.com/p/django-grappelli/wiki/screenshots (veraltete screenshots, zugegebenermaßen)

ein anwendungsbeispiel auch gleich mitgeliefert:
https://www.bookamat.com/

Antworten
Lars

Ist das ein Scherz?
„[…] Über Python gibt es viele Vorurteile: Es sei eine schwer zu verstehende Spr
ache, ungeeignet für Einsteiger“
Python wird als einfache Einsteigersprache angesehen…

Antworten
Sebastian

Sauber, ihr schreibt über Django! Geniales Framework.
Aber wie Raphael schon sagt, das deployment hat mir am Anfang auch Probleme bereitet. Das ist der einzige große Nachteil, den man leider erst später wirklich kennenlernt. Denn die ganze Entwicklung vorher ist super easy, mit eingebautem entwicklungsserver z.b..
Ich kann es jedem empfehlen.

Antworten
Thomas Quensen

@Sven: Das manuelle Konfigurieren ist in Symfony2 die übliche Vorgehensweise, es gibt aber auch z.B. das „FOSRestBundle“, welches automatisch CRUD-Urls generiert. mit einer kurzen Konfiguration hat man dann z.B. automatisch die Routen
GET /user, GET /user/{id}.{_format}, POST /user/{id}, DELETE /user/{id} usw.
Das ist im Fall einer REST-API ganz Praktisch, da hier das vorgegebene URL-Format gut passt.

Andere Plugins bieten z.B. auch die Möglichkeit, übersetzbare urls zu generieren, so dass z.B. /products/xyz und /produkte/xyz auf die gleiche Seite, aber mit ander Sprache verweisen

Antworten
Max b

Kann man Django als Web Framework für H2M Interfaces in SPSS benutzen?

Antworten
Abbrechen

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige