Τι είναι το Django;
Το Django (goh/ˈdʒæŋɡoʊ/jang-goh) είναι ένα δωρεάν και ανοικτού κώδικα web framework γραμμένο σε Python. Ένα web framework είναι ένα σύνολο από στοιχεία που σας βοηθά να αναπτύξετε ιστοσελίδες πιο γρήγορα και εύκολα.
Όταν κατασκευάζετε μία ιστοσελίδα, χρειάζεστε πάντα ένα παρόμοιο σύνολο στοιχείων: έναν τρόπο για να χειρίζεστε τον έλεγχο ταυτότητας χρήστη (εγγραφή, σύνδεση, αποσύνδεση), ένα πάνελ διαχείρισης για την ιστοσελίδα σας, φόρμες, έναν τρόπο για να ανεβάσετε αρχεία κλπ.
Ευτυχώς για εσάς, άλλα άτομα πριν από αρκετό καιρό παρατήρησαν ότι οι προγραμματιστές ιστού αντιμετωπίζουν παρόμοια προβλήματα κατά τη δημιουργία ενός νέου ιστοτόπου και έτσι συνεργάστηκαν και δημιούργησαν τα frameworks (το Django είναι ένα από αυτά) που σας δίνουν έτοιμα συστατικά που μπορείτε να χρησιμοποιήσετε.
Τα πλαίσια υπάρχουν για να μην χρειάζεται να "επανεφεύρετε τον τροχό" και να σας ελαφρύνουν από αρκετές εργασίες κατά την διάρκεια της κατασκευής μίας νέας ιστοσελίδας.
Γιατί χρειάζεστε ένα framework;
Για να καταλάβουμε τι είναι πραγματικά το Django, πρέπει να ρίξουμε μία πιο προσεκτική ματιά στους διακομιστές (servers). Το πρώτο πράγμα είναι ότι ο διακομιστής θα πρέπει να ξέρει τι θέλετε να εξυπηρετήσει σε μια ιστοσελίδα.
Φανταστείτε ένα γραμματοκιβώτιο (θύρα), το οποίο παρακολουθείται για εισερχόμενα γράμματα (αιτήματα). Αυτό γίνεται από έναν διακομιστή διαδικτύου (web server). Ο διακομιστής διαδικτύου διαβάζει το γράμμα και αποκρίνεται με μια ιστοσελίδα. Αλλά όταν θέλετε να στείλετε κάτι, πρέπει να έχει και κάποιο περιεχόμενο. Και το Django είναι κάτι που σας βοηθάει να δημιουργήσετε αυτό το περιεχόμενο.
Τι συμβαίνει όταν κάποιος ζητά μια ιστοσελίδα από το διακομιστή σας;
Όταν ένα αίτημα φτάσει σε ένα διακομιστή δικτύου, περνάει στο Django το οποίο προσπαθεί να καταλάβει τι ζητάει αυτό το αίτημα στην ουσία. Λαμβάνει πρώτα μια διεύθυνση σελίδας δικτύου και προσπαθεί να καταλάβει τι να κάνει. Αυτό το κομμάτι γίνεται από τον urlresolver του Django (σημειώστε ότι η διεύθυνση ενός ιστότοπου ονομάζεται URL - Uniform Resource Locator - και έτσι το όνομα urlresolver βγάζει νόημα). Παρόλαυτα δεν είναι πολύ έξυπνο. Παίρνει μια λίστα από μοτίβα και προσπαθεί να ταιριάξει την διεύθυνση URL. Το Django ελέγχει τα μοτίβα από πάνω προς τα κάτω και αν κάτι ταιριάζει, μεταβιβάζει το αίτημα στην σχετική λειτουργία (η οποία ονομάζεται view).
Φανταστείτε έναν ταχυδρόμο με ένα γράμμα. Περπατάει στην οδό και ελέγχει κάθε αριθμό σπιτιού αν είναι ίδιος με τον αντίστοιχο αριθμό στο γράμμα. Αν ταιριάζει, βάζει το γράμμα εκεί. Αυτός είναι ο τρόπος που λειτουργεί ο urlresolver!
Στο view, γίνονται όλα τα ενδιαφέροντα πράγματα: μπορούμε να δούμε μια βάση δεδομένων για να ψάξουμε για μερικές πληροφορίες. Μήπως ο χρήστης ζήτησε να αλλάξει κάτι στα δεδομένα; Όπως ένα γράμμα που λέει "Παρακαλώ, αλλάξτε την περιγραφή της δουλειάς μου.» Το view μπορεί να ελέγξει αν επιτρέπεται να το κάνετε αυτό και στη συνέχεια ενημερώνει την περιγραφή της δουλειάς σας και στείλνει πίσω ένα μήνυμα: "Έγινε!". Έπειτα το view παράγει ένα response και το Django το στέλνει πίσω στον web browser του χρήστη και προβάλεται στην οθόνη.
Φυσικά, η παραπάνω περιγραφή είναι λίγο απλοποιημένη, αλλά δεν χρειάζεται να γνωρίζετε όλα τα τεχνικά ζητήματα ακόμη. Μια γενική ιδέα είναι αρκετή.
Έτσι αντί να αφιερώνουμε πάρα πολύ χρόνο σε λεπτομέρειες, θα ξεκινήσουμε απλά δημιουργώντας κάτι με το Django και θα μάθουμε όλα τα σημαντικά κομμάτια καθοδόν!