Django (web framework)

Το Django (προφέρεται: ˈdʒæŋɡoʊ) είναι ένας ελεύθερος και ανοικτού κώδικα (web framework), βασισμένος στη γλώσσα Python, ο οποίος εκτελείται σε (web server). Ακολουθεί το αρχιτεκτονικό πρότυπο model–template–views (MTV). Συντηρείται από το Django Software Foundation (DSF), έναν ανεξάρτητο μη κερδοσκοπικό οργανισμό που εδρεύει στις ΗΠΑ.

Ο πρωταρχικός στόχος του Django είναι να διευκολύνει τη δημιουργία σύνθετων ιστοτόπων που βασίζονται σε βάσεις δεδομένων. Ο σκελετός δίνει έμφαση στην επαναχρησιμοποιησιμότητα και τη δυνατότητα σύνδεσης (pluggability) των στοιχείων του, στην ελαχιστοποίηση του κώδικα, στη χαμηλή σύζευξη (low coupling), στην ταχεία ανάπτυξη και στην αρχή «μην επαναλαμβάνεσαι» (DRY). Η Python χρησιμοποιείται παντού, ακόμη και για τις ρυθμίσεις, τα αρχεία και τα μοντέλα δεδομένων.

Επιπλέον, το Django παρέχει μια προαιρετική διεπαφή διαχείρισης για λειτουργίες CRUD (δημιουργία, ανάγνωση, ενημέρωση και διαγραφή), η οποία παράγεται δυναμικά μέσω ενδοσκόπησης (introspection) και διαμορφώνεται μέσω μοντέλων διαχείρισης.

Ορισμένοι γνωστοί ιστότοποι που χρησιμοποιούν το Django περιλαμβάνουν το Instagram, το Mozilla, το Disqus, το Bitbucket, το Nextdoor και το Clubhouse.

 Ιστορία 
Το Django δημιουργήθηκε το φθινόπωρο του 2003, όταν οι προγραμματιστές ιστού της εφημερίδας Lawrence Journal-World, Adrian Holovaty και Simon Willison, άρχισαν να χρησιμοποιούν την Python για την κατασκευή εφαρμογών. Ο Jacob Kaplan-Moss προσλήφθηκε νωρίς κατά την ανάπτυξη του Django, λίγο πριν ολοκληρωθεί η πρακτική άσκηση του Willison. Κυκλοφόρησε δημόσια υπό την Άδεια BSD τον Ιούλιο του 2005. Ο σκελετός πήρε το όνομά του από τον κιθαρίστα Τζάνγκο Ράινχαρτ. Ο Holovaty είναι παίκτης κιθάρας romani jazz (τσιγγάνικη τζαζ), εμπνευσμένος εν μέρει από τη μουσική του Ράινχαρτ.

Τον Ιούνιο του 2008, ανακοινώθηκε ότι το νεοσύστατο Ίδρυμα Λογισμικού Django (Django Software Foundation - DSF) θα αναλάμβανε τη συντήρηση του Django στο μέλλον.

 Χαρακτηριστικά 
 Συστατικά μέρη 
Παρά τη δική του ονοματολογία, όπως η ονομασία των (callable objects) που παράγουν τις αποκρίσεις HTTP ως «views» (όψεις), ο πυρήνας του Django μπορεί να θεωρηθεί ως αρχιτεκτονική MVC. Αποτελείται από:
 Έναν αντικειμενοστρεφή χαρτογράφο συσχετίσεων (ORM) που μεσολαβεί μεταξύ των μοντέλων δεδομένων (που ορίζονται ως κλάσεις Python) και μιας σχεσιακής βάσης δεδομένων («Model»).
 Ένα σύστημα επεξεργασίας αιτημάτων HTTP με ένα σύστημα προτύπων ιστού (web templating system) («View»).
 Έναν διανομέα URL (URL dispatcher) βασισμένο σε κανονικές εκφράσεις («Controller»).

Επίσης, στον πυρήνα περιλαμβάνονται:
 Ένας ελαφρύς και αυτόνομος web server για ανάπτυξη και δοκιμές.
 Ένα σύστημα σειριοποίησης και επικύρωσης φορμών που μεταφράζει μεταξύ φορμών HTML και τιμών κατάλληλων για αποθήκευση στη βάση δεδομένων.
 Ένα σύστημα προτύπων που χρησιμοποιεί την έννοια της κληρονομικότητας.
 Ένα πλαίσιο προσωρινής αποθήκευσης (caching).
 Υποστήριξη για κλάσεις ενδιάμεσου λογισμικού (middleware).
 Ένα σύστημα διεθνειοποίησης, συμπεριλαμβανομένων μεταφράσεων των ίδιων των συστατικών του Django σε διάφορες γλώσσες.

 Ενσωματωμένες εφαρμογές 
Η κύρια διανομή του Django περιλαμβάνει έναν αριθμό εφαρμογών στο πακέτο «contrib», όπως:
 Ένα επεκτάσιμο σύστημα πιστοποίησης (authentication).
 Τη δυναμική διεπαφή διαχείρισης (admin interface).
 Εργαλεία για τη δημιουργία ροών RSS και Atom.
 Ενσωματωμένη προστασία από επιθέσεις CSRF, XSS, SQL injection και άλλες τυπικές επιθέσεις ιστού, οι περισσότερες από τις οποίες είναι ενεργοποιημένες από προεπιλογή.
 Ένα πλαίσιο για τη δημιουργία εφαρμογών γεωγραφικών πληροφοριών (GIS).

 Επεκτασιμότητα 
Το σύστημα ρυθμίσεων του Django επιτρέπει την ενσωμάτωση κώδικα τρίτων σε ένα έργο. Περισσότερα από 5.000 πακέτα είναι διαθέσιμα για την επέκταση της συμπεριφοράς του σκελετού, παρέχοντας λύσεις για θέματα όπως η εγγραφή χρηστών, η αναζήτηση, η παροχή και κατανάλωση API και η διαχείριση περιεχομένου (CMS).

 Ρυθμίσεις διακομιστή 
Το Django μπορεί να εκτελεστεί σε διακομιστές ιστού συμβατούς με ASGI ή WSGI. Υποστηρίζει επίσημα πέντε βάσεις δεδομένων: PostgreSQL, MySQL, MariaDB, SQLite και Oracle.

 Ιστορικό εκδόσεων 

Η ομάδα ανάπτυξης του Django ορίζει κατά καιρούς ορισμένες κυκλοφορίες ως εκδόσεις «μακροχρόνιας υποστήριξης» (Long-term support - LTS). Οι εκδόσεις LTS λαμβάνουν διορθώσεις ασφαλείας και προστασίας δεδομένων για μια εγγυημένη χρονική περίοδο, συνήθως 3+ έτη, ανεξάρτητα από τον ρυθμό των επόμενων κυκλοφοριών.

 Έκδοση Ημερομηνία κυκλοφορίας Λήξη κύριας υποστήριξης Λήξη εκτεταμένης υποστήριξης Σημειώσεις scope="row"   16 Νοεμβρίου 2005    scope="row"   11 Ιανουαρίου 2006    "new-admin" scope="row"   3 Σεπτεμβρίου 2008    Σταθερότητα API, ανεξάρτητο admin, unicode scope="row"   23 Μαρτίου 2012  26 Φεβρουαρίου 2013  1 Οκτωβρίου 2015  Ζώνες ώρας, in-browser testing. scope="row"   26 Φεβρουαρίου 2013  6 Νοεμβρίου 2013  2 Σεπτεμβρίου 2014  Υποστήριξη Python 3. scope="row"   1 Απριλίου 2015  1 Δεκεμβρίου 2015  1 Απριλίου 2018  Υποστήριξη για πολλαπλές μηχανές προτύπων. scope="row"   4 Απριλίου 2017  2 Δεκεμβρίου 2017  1 Απριλίου 2020  Τελευταία έκδοση με υποστήριξη Python 2.7. scope="row"   2 Δεκεμβρίου 2017  1 Αυγούστου 2018  1 Απριλίου 2019  Πρώτη έκδοση αποκλειστικά για Python 3. scope="row"   2 Δεκεμβρίου 2019  3 Αυγούστου 2020  6 Απριλίου 2020  Υποστήριξη ASGI. scope="row"   6 Απριλίου 2021  7 Δεκεμβρίου 2021  Απρίλιος 2024  Υποστήριξη Python 3.11. scope="row"   3 Απριλίου 2023  4 Δεκεμβρίου 2023  Απρίλιος 2026  Υποστήριξη Psycopg 3. scope="row"   4 Δεκεμβρίου 2023  7 Αυγούστου 2024  2 Απριλίου 2025  Facet filters στο admin. scope="row"   7 Αυγούστου 2024  2 Απριλίου 2025  Δεκέμβριος 2025  Υποστήριξη Python 3.13 και PostgreSQL connection pools. scope="row"   2 Απριλίου 2025  Δεκέμβριος 2025  Απρίλιος 2028  Σύνθετα πρωτεύοντα κλειδιά. scope="row"   3 Δεκεμβρίου 2025  Αύγουστος 2026  Απρίλιος 2027   

 Κοινότητα 

 DjangoCon 
Το «DjangoCon» είναι ένα εξαμηνιαίο συνέδριο για προγραμματιστές και χρήστες του Django που πραγματοποιείται από τον Σεπτέμβριο του 2008. Διεξάγεται ετησίως στην Ευρώπη (Μάιο ή Ιούνιο) και αντίστοιχα στις Ηνωμένες Πολιτείες (Αύγουστο ή Σεπτέμβριο) σε διάφορες πόλεις.

Πρόσφατα συνέδρια περιλαμβάνουν:
 DjangoCon Europe 2025: Πραγματοποιήθηκε στο Δουβλίνο της Ιρλανδίας.
 DjangoCon US 2025: Πραγματοποιήθηκε στο Σικάγο των ΗΠΑ.

Επίσης, πραγματοποιούνται μικρότερα συνέδρια στην Αυστραλία (ως μέρος του PyCon AU) και στην Αφρική, με το πρώτο DjangoCon Africa να λαμβάνει χώρα στη Ζανζιβάρη της Τανζανίας το 2023.

 Ομάδες και προγράμματα κοινότητας 
Το Django έχει γεννήσει πολυάριθμες ομάδες χρηστών παγκοσμίως. Μια αξιοσημείωτη οργάνωση είναι οι Django Girls, η οποία ξεκίνησε από την Πολωνία και πλέον διοργανώνει εργαστήρια προγραμματισμού για γυναίκες σε πάνω από 90 χώρες.

Μια άλλη πρωτοβουλία είναι το Djangonaut Space, ένα πρόγραμμα καθοδήγησης (mentorship) που στοχεύει στην υποστήριξη νέων συντελεστών στο οικοσύστημα του Django, συνδέοντάς τους με έμπειρους μέντορες.

 Μεταφορές σε άλλες γλώσσες 
Προγραμματιστές έχουν μεταφέρει τη σχεδίαση της μηχανής προτύπων (template engine) του Django από την Python σε άλλες γλώσσες προγραμματισμού:
 Liquid για τη Ruby
 Swig για την Perl
 Twig για την PHP και τη JavaScript
 Jinja για την Python
 ErlyDTL για την Erlang

 Συστήματα CMS βασισμένα στο Django 
Το Django, ως σκελετός γενικής χρήσης, είναι ικανό να αποτελέσει τη βάση για πλήρη Συστήματα Διαχείρισης Περιεχομένου (CMS). Ορισμένα γνωστά έργα CMS που βασίζονται στο Django είναι:
 Django CMS
 Wagtail
 Mezzanine

 Εξωτερικοί σύνδεσμοι 
 Ο επίσημος ιστότοπος του Django (Αγγλικά)

Κατηγορία:Python
 Παραπομπές