Μάθετε WSGI και αφήστε τον Python να ιδρώσει το μικρό υλικό

Αποκάλυψη: Η υποστήριξή σας βοηθά στη διατήρηση της λειτουργίας του ιστότοπου! Κερδίζουμε ένα τέλος παραπομπής για ορισμένες από τις υπηρεσίες που προτείνουμε σε αυτήν τη σελίδα.


Την εποχή εκείνη, η ανάπτυξη εφαρμογών ιστού στην Python ήταν προβληματική, επειδή οι προγραμματιστές έπρεπε να προσέχουν ιδιαίτερα και να διαβεβαιώσουν ότι η εφαρμογή ιστού τους θα λειτουργούσε ομαλά σε διαφορετικούς διακομιστές ιστού και σε διάφορα πλαίσια ιστού για την Python. Η επιλογή ενός συγκεκριμένου πλαισίου Ιστού Python κατά την ανάπτυξη εφαρμογών περιόρισε την επιλογή συμβατών διακομιστών ιστού, ικανών να εκτελέσουν την ολοκληρωμένη εφαρμογή.

Το Web Server Gateway Interface (WSGI) εισήχθη ως λύση σε αυτό το πρόβλημα. Το WSGI είναι μια προδιαγραφή για μια τυποποιημένη διεπαφή για επικοινωνία μεταξύ διακομιστών Ιστού και πλαισίων ή εφαρμογών Python web. Εάν μια εφαρμογή, ή ένα πλαίσιο, έχει γραφτεί για συμμόρφωση με τις προδιαγραφές WSGI, τότε θα εκτελείται σε οποιονδήποτε διακομιστή ιστού που υποστηρίζει την ίδια προδιαγραφή.

Φυσικά, η Python δεν είναι η μόνη γλώσσα προγραμματισμού με τυποποιημένη προδιαγραφή διεπαφής. Πολλές σύγχρονες γλώσσες προγραμματισμού χρησιμοποιούν την ίδια προσέγγιση, οπότε για παράδειγμα, η Ruby χρησιμοποιεί τη δική της διεπαφή διακομιστή Rack, η JavaScript βασίζεται στη διεπαφή πύλης JSGI, ενώ η Perl χρησιμοποιεί PSGI.

Σύντομη Ιστορία

Η προδιαγραφή WSGI εισήχθη αρχικά στην Python Enhancement Proposal 333 (PEP 333), που γράφτηκε από τον Phillip J Eby και δημοσιεύθηκε τον Δεκέμβριο του 2003. Αυτό το αρχικό σχέδιο προδιαγραφών WSGI παρουσίασε τις βασικές αρχές και στόχους για το WSGI – έπρεπε να είναι εύκολο να εφαρμοστεί , απλό και καθολικό, και έπρεπε να διευκολύνει την εύκολη διασύνδεση υπαρχόντων διακομιστών και πλαισίων.

Το WSGI υιοθετήθηκε γρήγορα από διακομιστές και προγραμματιστές και προγραμματιστές πλαισίου Python και έγινε το de facto πρότυπο για την ανάπτυξη εφαρμογών ιστού Python. Η τελευταία έκδοση της προδιαγραφής WSGI είναι το V1.0.1, που δημοσιεύθηκε στο PEP 3333 στις 26 Σεπτεμβρίου 2010.

Επισκόπηση προδιαγραφών WSGI

Η προδιαγραφή WSGI δηλώνει τρεις συγκεκριμένους ρόλους: την πλευρά του διακομιστή, την πλευρά της εφαρμογής και το στοιχείο μεσαίου λογισμικού, το οποίο υλοποιεί τόσο τις πλευρές του διακομιστή όσο και τις εφαρμογές της διεπαφής.

Η πλευρά της εφαρμογής

Η πλευρά εφαρμογής του WSGI είναι ένα απλό αντικείμενο που δέχεται δύο ορίσματα και μπορεί να κληθεί από κώδικα. Αυτό το παράδειγμα δείχνει μια απλή εφαρμογή WSGI που επιστρέφει ένα στατικό “Hello world!” σελίδα:

def simple_app (περιβάλλον, start_response):
κατάσταση = “200 ΟΚ”
Respons_headers = [(«Τύπος περιεχομένου», «κείμενο / απλό»)]
start_response (κατάσταση, απόκριση_ κεφαλίδες)
επιστροφή [‘Γεια σου κόσμος! n’]

Τα πλευρικά αντικείμενα της εφαρμογής μπορούν να κληθούν πολλές φορές, καθώς όλοι οι διακομιστές υποβάλλουν τέτοια επαναλαμβανόμενα αιτήματα.

Η πλευρά του διακομιστή

Η πλευρά του διακομιστή του WSGI λαμβάνει απλώς αιτήματα από τον πελάτη HTTP, καλεί την εφαρμογή μία φορά για κάθε αίτημα και στέλνει την απάντηση που επιστρέφεται από την εφαρμογή στον πελάτη.

Το στοιχείο Middleware

Τα στοιχεία του Middleware που ορίζονται στην προδιαγραφή WSGI χρησιμοποιούν και τις δύο πλευρές της διεπαφής – την πλευρά της εφαρμογής, καθώς και την πλευρά του διακομιστή. Οι λειτουργίες του Middleware είναι διαφανείς τόσο στην πλευρά του διακομιστή όσο και στην πλευρά της εφαρμογής.

Τα στοιχεία του Middleware συνήθως προ-λειτουργούν λειτουργίες όπως η δρομολόγηση αιτημάτων σε διαφορετικά αντικείμενα εφαρμογών με βάση τη διεύθυνση URL προορισμού, επιτρέποντας σε πολλές εφαρμογές να εκτελούνται παράλληλα στην ίδια διαδικασία. Επιτρέπουν την εξισορρόπηση φορτίου, την απομακρυσμένη επεξεργασία ή το περιεχόμενο μετά την επεξεργασία.

Αυτό το παράδειγμα δείχνει ένα απλό στοιχείο μεσαίου λογισμικού που κεφαλαίνει όλα όσα λαμβάνει:

Upperware τάξης:
def __init __ (αυτο, εφαρμογή):
self.wrapped_app = εφαρμογή

def __call __ (self, environ, start_response):
για δεδομένα στο self.wrapped_app (environ, start_response):
επιστροφή δεδομένων. άνω ()

Χρησιμοποιώντας το WSGI

Το WSGI είναι πλέον αποδεκτό ως πρότυπο για την ανάπτυξη εφαρμογών Ιστού Python. Η έκδοση Python 2.5 και οι επόμενες κυκλοφορίες διαθέτουν ενσωματωμένη υποστήριξη WSGI. Στις εκδόσεις Python 2.4 και παλαιότερες, η υποστήριξη WSGI μπορεί να εγκατασταθεί ξεχωριστά. Μια ενημερωμένη έκδοση των προδιαγραφών WSGI που δηλώνεται στο PEP 3333 είναι διαθέσιμη για το Python 3.

Εάν αναπτύσσετε εφαρμογές ιστού στο Python, απλώς χρησιμοποιήστε ένα αποδεδειγμένο πρότυπο της βιομηχανίας, όπως τα πλαίσια Ιστού Django, Flask ή Bottle Python ή οποιοδήποτε άλλο τρέχον πλαίσιο Python. Δεν είναι απαραίτητο να μάθετε πολλά για τις προδιαγραφές WSGI για τη δημιουργία εφαρμογών. Απλώς χρησιμοποιήστε οποιοδήποτε τρέχον γενικό πλαίσιο εφαρμογής ιστού και θα πρέπει να είστε ξεκάθαροι, καθώς όλοι υποστηρίζουν το WSGI.

Από την άλλη πλευρά, εάν αναπτύσσετε μόνοι σας ένα νέο πλαίσιο εφαρμογής ιστού, τότε θα πρέπει σίγουρα να ρίξετε μια ματιά στις προδιαγραφές WSGI και να δείτε μερικούς πόρους μάθησης για το WSGI.

Πόροι WSGI

Εάν πρέπει να μάθετε περισσότερα για το WSGI, σας προτείνουμε να ρίξετε μια ματιά σε μερικούς από τους παρακάτω διαδικτυακούς πόρους:

  • Ο ιστότοπος κοινότητας του WSGI είναι προφανώς το πρώτο μέρος που μπορείτε να επισκεφθείτε. Μπορείτε να βρείτε πολλούς χρήσιμους πόρους, και υπάρχει επίσης μια ωραία ενότητα Μάθετε για το WSGI. Αυτός ο ιστότοπος παραθέτει επίσης τα πλαίσια και τους διακομιστές που υποστηρίζουν το WSGI.
  • Μπορείτε επίσης να διαβάσετε την πλήρη πρόταση Python Enhancement 333 και την Python Enhancement Proposal 3333 για περισσότερες πληροφορίες.
  • Η διαδικτυακή τεκμηρίωση του Pylons Web Development Framework έχει μια πολύ ωραία και λεπτομερή ενότητα για το WSGI.
  • Το Codepoint’s WSGI Tutorial θα δείξει τις προδιαγραφές WSGI στην εργασία χρησιμοποιώντας μερικά απλά παραδείγματα.

Βιβλία WSGI

Τα βιβλία που καλύπτουν συγκεκριμένα το WSGI είναι δύσκολο να βρεθούν και συνήθως θα βρείτε κεφάλαια που ασχολούνται με το WSGI σε διάφορα βιβλία προγραμματισμού εφαρμογών Ιστού Python, όπως αυτό:

  • Θεμέλια προγραμματισμού δικτύου Python: Ο πλήρης οδηγός για την κατασκευή εφαρμογών δικτύου με Python από τους Goerzen, Bower και Rhodes: Το κεφάλαιο για τον προγραμματισμό εφαρμογών ιστού καλύπτει τόσο το πρότυπο WSGI για διαλειτουργικότητα συστατικών, όσο και τα σύγχρονα πλαίσια ιστού όπως το Django.

συμπέρασμα

Το WSGI είναι μια ζωτική προδιαγραφή Python, αλλά στην πραγματικότητα, οι περισσότεροι προγραμματιστές της Python δεν χρειάζεται να ανησυχούν γι ‘αυτό. Εφ ‘όσον χρησιμοποιούν ένα μεγάλο πλαίσιο, θα επωφεληθούν από το WSGI χωρίς να του δώσουν μια δεύτερη σκέψη. Με άλλα λόγια, οι περισσότεροι προγραμματιστές δεν απαιτούν οικεία γνώση του WSGI, επειδή η προδιαγραφή έχει εφαρμοστεί σε όλα τα μεγάλα πλαίσια Python.

Τούτου λεχθέντος, το WSGI εξακολουθεί να ισχύει, αν και δεν αποτελεί προϋπόθεση για τον προγραμματισμό Python. Μία αξιοσημείωτη εξαίρεση αφορά μηχανικούς λογισμικού που αποφασίζουν να εργαστούν σε πλαίσια Python και όχι σε εφαρμογές Python. Όσον αφορά, το WSGI είναι απαραίτητη προδιαγραφή και πρέπει να γνωρίζουν τα πλεονεκτήματα του WSGI εάν ελπίζουν να το ενσωματώσουν στο πλαίσιο τους.

Αυτό είναι προφανώς μια (πολύ) σφιχτή θέση, αλλά αυτό δεν σημαίνει ότι η ανάπτυξη του WSGI έχει σταματήσει. Σημαίνει απλώς ότι η κοινότητα δεν είναι μεγάλη, αλλά είναι εκεί.

Περαιτέρω ανάγνωση και πόροι

Έχουμε περισσότερους οδηγούς, σεμινάρια και γραφήματα που σχετίζονται με την κωδικοποίηση και την ανάπτυξη:

  • Python Εισαγωγή, Πόροι και Συχνές ερωτήσεις: εάν είστε νέοι στο Python, αυτή η εισαγωγή θα σας κάνει να ξεκινήσετε.
  • MPI – Εισαγωγή, Ιστορικό και Πόροι: το Interface Passing Interface (MPI) επιτρέπει σε προγράμματα και άλλα υπολογιστικά συστήματα να στέλνουν μηνύματα μεταξύ τους.
  • Εισαγωγή και πόροι προγραμματισμού Linux: αυτή η βαθιά βουτιά στον προγραμματισμό Linux μπαίνει στον πυρήνα όπου είναι όλη η δράση.

Τι κώδικα πρέπει να μάθετε?

Μπερδεμένοι με ποια γλώσσα προγραμματισμού πρέπει να μάθετε να κωδικοποιείτε; Ρίξτε μια ματιά στο infographic μας, τι κώδικα πρέπει να μάθετε; Δεν συζητά μόνο διαφορετικές πτυχές των γλωσσών, αλλά απαντά σε σημαντικές ερωτήσεις όπως, “Πόσα χρήματα θα κάνω προγραμματισμό Java για τα προς το ζην;”

Τι κώδικα πρέπει να μάθετε;
Τι κώδικα πρέπει να μάθετε?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map