Τα πλαίσια Web καθιστούν την ανάπτυξη όσο το δυνατόν πιο εύκολη για τους προγραμματιστές ιστού. Ωστόσο, η Python, μια από τις πιο δημοφιλείς γλώσσες προγραμματισμού, έχει λάβει πολλές συνεισφορές όσον αφορά την εφαρμογή της στην ανάπτυξη backend.
Η Python έχει πολλά πλαίσια web. Αυτά τα πλαίσια εμπίπτουν είτε σε μακροοικονομικές είτε σε μικροκατηγορίες. Τα TurboGears, Web2Py, Pyramid και Django είναι μερικά από τα μακροοικονομικά πλαίσια web της Python. Εν τω μεταξύ, τα Flask, CherryPy και Bottle είναι παραδείγματα μικροπλαισίων.
Ωστόσο, τα πιο χρησιμοποιούμενα παραδείγματα σε κάθε κατηγορία είναι το Django και το Flask. Για αυτόν τον λόγο, ας δούμε και τα δύο πλαίσια για να σας βοηθήσουμε να αποφασίσετε ποιο αξίζει να αφιερώσετε περισσότερο χρόνο για να μάθετε.
Βασική Δομή των Πλαισίου
Παρά το γεγονός ότι είναι πλαίσια Python, η αρχιτεκτονική του Django και του Flask είναι εντελώς διαφορετική μεταξύ τους. Ας ρίξουμε μια ματιά στο πώς η αρχιτεκτονική τους επηρεάζει την επιλογή σας ως χρήστη.
Δομή του Django
Λόγω της χρήσης του στη δημιουργία πιο περίπλοκων εφαρμογών ιστού που βασίζονται σε Python, το Django έχει μια στιβαρή αρχιτεκτονική που επιτρέπει την επεκτασιμότητα. Του Μοντέλο-Θέα-Πρότυπο Η δομή (MVT) το καθιστά το τέλειο πλαίσιο για ανάπτυξη full-stack. Έτσι, εάν αναζητάτε έναν τρόπο να πάρετε ένα χέρι στις πτυχές του frontend και του backend της ανάπτυξης ιστού και να χρησιμοποιήσετε την Python ως γλώσσα διακομιστή, το Django εξακολουθεί να είναι η καλύτερη επιλογή που πρέπει να εξετάσετε.
Εκτός από τη διαθεσιμότητα ενός ευρέος φάσματος πακέτων ανάπτυξης και της προδημιουργημένης δομής αρχείων Python, το Django προσφέρει ένα ενσωματωμένο Αντικείμενο-Σχεσιακός Χαρτογράφηση (ORM), δίνοντάς του ευέλικτη πρόσβαση σε μια ποικιλία βάσεων δεδομένων. Στην ουσία, δεν χρειάζεται να γράψετε πολλά ερωτήματα για να εισαγάγετε ή να καλέσετε αντικείμενα από τη βάση δεδομένων.
Όταν δημιουργείτε πίνακες μέσω των μοντέλων του Django, το μόνο που χρειάζεται να κάνετε είναι να ορίσετε τα χαρακτηριστικά αυτών των πινάκων στη βάση δεδομένων σας μέσα σε μεμονωμένα αντικείμενα. Τα ανεπεξέργαστα ερωτήματα που δημιουργούν αυτούς τους πίνακες στη συνέχεια δεσμεύονται αυτόματα στο αρχείο μετεγκατάστασης αφού μετακινήσετε τους πίνακές σας στη βάση δεδομένων.
Έτσι, το ORM του Django σάς βοηθά να αντιμετωπίσετε την επιπλέον εργασία που συνεπάγεται η σύνταξη ξεχωριστών ερωτημάτων για τη βάση δεδομένων σας. Και αν θέλετε να εστιάσετε περισσότερο στο να κάνετε τον ιστότοπό σας να λειτουργεί χωρίς να ανησυχείτε για τη διαμόρφωση οποιασδήποτε ένεσης βάσης δεδομένων τρίτων, το Django μπορεί να είναι μια επιλογή.
Δομή φιάλης
Το Flask προσφέρει ελάχιστη αρχιτεκτονική σε σύγκριση με το Django. Είναι ένα μικροπλαίσιο που δεν αντιμετωπίζει τόση πολυπλοκότητα όσο το Django. Σε αντίθεση με την αρχιτεκτονική MVT του Django, το Flask ακολουθεί το πιο κοινό Μοντέλο-Προβολές-Ελεγκτής (MVC) δομή.
Ωστόσο, το Views και το Controller of Flask είναι συνώνυμα με τα Templates και Views του Django, αντίστοιχα. Αυτό σημαίνει ότι αντί για τις Προβολές του Django, λαμβάνετε τους Ελεγκτές στο Flask. Και το Views of Flask αναλαμβάνει τις λειτουργίες των προτύπων του Django.
Σε αντίθεση με το Django, όταν εγκαθιστάτε το Flask στο δικό σας εικονικό περιβάλλον και ανοίξτε το έργο σας, θα έχετε έναν κενό κατάλογο αρχείων. Αυτό σημαίνει ότι πρέπει να αρχίσετε να δημιουργείτε τα αρχεία σας με μη αυτόματο τρόπο.
Έτσι, εάν θέλετε να αποφύγετε την περίπλοκη δομή του Django, το Flask είναι μια εξαιρετική επιλογή που πρέπει να εξετάσετε. Ωστόσο, επειδή είναι ελαφρύ, το Flask δεν προσφέρει τόσα ενσωματωμένα πακέτα όπως το Django. Και για να χρησιμοποιήσετε τη δυνατότητα ORM στο Flask, χρειάζεστε ένα πακέτο έγχυσης βάσης δεδομένων τρίτου κατασκευαστή που ονομάζεται SQLAlchemy.
Σχετίζεται με: Σημαντικές εντολές SQL που κάθε προγραμματιστής πρέπει να γνωρίζει
Ευκολία μάθησης και πιθανότητες να προχωρήσουμε βαθύτερα
Όσον αφορά την ευκολία εκμάθησης, το Django περιλαμβάνει πολλές ανατροπές που μπορεί να σας γίνουν βαρετές κατά μήκος της γραμμής. Ωστόσο, το Flask μπορεί να είναι πιο ενδιαφέρον να μάθεις λόγω των λίγων τροποποιήσεων που εμπλέκονται στη λειτουργία της εφαρμογής σου.
Λόγω της πολυπλοκότητας και της τεράστιας εφαρμογής του Django σε διάφορες γωνίες ανάπτυξης, όπως ο ρόλος του πλαισίου REST στην ανάπτυξη API με δυνατότητα περιήγησης, η καμπύλη εκμάθησης μπορεί να προκαλέσει σύγχυση. Αλλά λαμβάνοντας υπόψη αυτό, η λειτουργικότητα από μόνη της μπορεί να είναι ένας καλός λόγος για να μάθετε το Django ανεξάρτητα.
Αν και το Flask έχει επέκταση REST για τη δημιουργία API, εξακολουθεί να μην προσφέρει την πλήρη και ενσωματωμένη δομή API που παρέχει το Django. Αλλά ρίχνοντας μια ματιά στην ευκολία επιλογής ενός πλαισίου γενικά, το Flask είναι πιο φιλικό προς τους αρχάριους.
Και επειδή κάνετε τις περισσότερες συνδέσεις και δομείτε τον εαυτό σας στο Flask, σας εκθέτει στη βασική κατανόηση της ροής εργασίας της ανάπτυξης ιστού με την Python. Σε αντίθεση με το Django, είναι ένα απλό πλαίσιο που εστιάζει στη δημιουργία ακριβώς αυτού που σκοπεύετε, χωρίς απαραίτητα να χάσετε τον έλεγχο του τρόπου σύνδεσης των αρχείων σας.
Εάν δεν έχετε ήδη πολλές γνώσεις για την Python, η εκμάθηση του Flask μπορεί να είναι ο τέλειος τρόπος για να ξεκινήσετε. Εξάλλου, η σύνταξη κωδίκων στο Flask είναι κυρίως σαν να γράφεις καθαρή Python.
Ωστόσο, εάν σκοπεύετε να αποκτήσετε ένα πιο απαιτητικό πλαίσιο Python που σας δίνει περισσότερη έκθεση στο τυπικές πρακτικές ανάπτυξης ιστού, χωρίς να προσέχετε πολύ την εσωτερική καλωδίωση, το Django μπορεί να είναι το σωστό επιλογή. Αυτό δεν σημαίνει ότι δεν μπορείτε να βουτήξετε βαθύτερα με το Flask όπως επισημάνθηκε προηγουμένως, είναι ένας πολύ καλός τρόπος για να ξεκινήσετε το μαθησιακό ταξίδι σας με πλαίσια web Python.
Βάση χρηστών και κοινότητα
Παρά το γεγονός ότι είναι εύκολο στην εκμάθηση και ελαφρύ, το Flask ακολουθεί το Django όσον αφορά τη δημοτικότητα. Η στιβαρότητα, η σταθερότητα της έκδοσης και η ταχύτητα ανάπτυξης εφαρμογών ιστού με το Django είναι μερικοί από τους λόγους για τους οποίους αποτελεί το πλαίσιο επιλογής για τους περισσότερους προγραμματιστές.
Και ρίχνοντας μια ματιά στην τάση τους στο Stack Overflow, ο Django είναι λίγο πιο συζητημένος από το Flask. Αυτό σημαίνει ότι υπάρχει μια μεγάλη κοινότητα Django στην οποία μπορείτε να ζητήσετε βοήθεια όταν αντιμετωπίζετε προβλήματα. Ωστόσο, αυτό δεν κάνει το Flask λιγότερο από ένα πλαίσιο όσον αφορά την υποστήριξη της κοινότητας επίσης.
Εξάλλου, η διαφορά μεταξύ της δημοτικότητάς τους δεν είναι τόσο σημαντική. Σύμφωνα με την έρευνα προγραμματιστών του 2020, όπως αναφέρεται στο JetBrains ιστοσελίδα, το Django έχει 49 τοις εκατό από άποψη δημοτικότητας, ενώ το Flask είναι 46 τοις εκατό δημοφιλές. Αυτή είναι μόνο μια διαφορά 3 τοις εκατό.
Αυτό το στατιστικό από μόνο του θα πρέπει να κατευνάσει τους φόβους και τις ανησυχίες σας σχετικά με τη διαθεσιμότητα μιας κοινότητας υποστήριξης για το Flask. Οπότε, όσο κολλημένος κι αν βρεθείς, πάντα υπάρχει λύση για να ξαναπέσει.
Ποιους τύπους έργων εξυπηρετεί κάθε πλαίσιο;
Ένα από τα χαρακτηριστικά του Django είναι ότι μπορείτε να δημιουργήσετε πολλές εφαρμογές και να τις συνδέσετε μέσω αποκλειστικών διευθύνσεων URL. Αυτό κάνει το Django ένα πλαίσιο επιλογής για την κατασκευή πιο σύνθετων εφαρμογών που απαιτούν μέλλον επεκτασιμότητα.
Ωστόσο, η δημιουργία πολύπλοκων εφαρμογών με το Flask είναι επίσης δυνατή, αλλά αυτό δεν ταιριάζει καλά με την τρέχουσα αρχιτεκτονική του. Είναι πιο κατάλληλο για τη δημιουργία απλών εφαρμογών που δεν απαιτούν περίπλοκη υποδομή για να προχωρήσουν.
Παρόλο που το Django προσφέρει επεκτασιμότητα, εξακολουθείτε να μην έχετε τον πλήρη έλεγχο των μονάδων του. Το Flask, από την άλλη, προσφέρει απλότητα, αλλά σας δίνει την ευελιξία να βυθίζετε τα χέρια σας στα διάφορα εξαρτήματά του. Αυτό συμβαίνει επειδή, στο Flask, έχετε την τάση να γράφετε μόνοι σας τα περισσότερα μπλοκ με ελάχιστη εξάρτηση από πακέτα τρίτων.
Ποιο από τα Python Web Framework θα πρέπει να επιλέξετε;
Συζητήσαμε και τα δύο πλαίσια, χωρίς τον στόχο να τοποθετήσουμε το ένα πάνω από το άλλο. Έτσι, με βάση αυτά που γνωρίζετε τώρα, το καλύτερο πλαίσιο ιστού Python για εκμάθηση εξαρτάται από τις υπάρχουσες ικανότητές σας και την περίπτωση χρήσης.
Ωστόσο, μια καλύτερη προσέγγιση είναι να γνωρίζετε τα βασικά της Python. Στη συνέχεια, μπορείτε να δοκιμάσετε πρώτα το εύκολο πλαίσιο πριν προχωρήσετε στο σύνθετο. Και όποια κι αν είναι η επιλογή σας, και τα δύο πλαίσια έχουν την ειδικότητά τους. Έτσι, μπορείτε να αποφασίσετε και σε αυτή τη βάση.
Ενδιαφέρεστε να μάθετε προηγμένη ανάπτυξη Ιστού; Αποφύγετε να γράφετε επαναλαμβανόμενους κωδικούς, χρησιμοποιήστε αυτά τα πλαίσια ανάπτυξης ιστού.
Διαβάστε Επόμενο
- Προγραμματισμός
- Πύθων
Ο Idowu είναι παθιασμένος με οτιδήποτε έξυπνη τεχνολογία και παραγωγικότητα. Στον ελεύθερο χρόνο του, παίζει με την κωδικοποίηση και μεταβαίνει στη σκακιέρα όταν βαριέται, αλλά του αρέσει επίσης να ξεφεύγει από τη ρουτίνα που και που. Το πάθος του να δείχνει στους ανθρώπους τον τρόπο γύρω από τη σύγχρονη τεχνολογία τον παρακινεί να γράψει περισσότερα.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε