Πώς να χρησιμοποιήσετε το Python SimpleHTTPServer

How Use Python Simplehttpserver



Το κύριο καθήκον του διακομιστή ιστού είναι να χειρίζεται τα αιτήματα HTTP από τον πελάτη. Περιμένει τα αιτήματα HTTP που προέρχονται από τη συγκεκριμένη διεύθυνση IP και τον αριθμό θύρας, χειρίζεται το αίτημα και στέλνει πίσω την απάντηση του πελάτη. Η Python χρησιμοποιεί το SimpleHTTPServer ενότητα για τη δημιουργία ενός διακομιστή ιστού άμεσα και εύκολα για την εξυπηρέτηση του περιεχομένου του αρχείου από τον διακομιστή. Μπορεί επίσης να χρησιμοποιηθεί για κοινή χρήση αρχείων. Για αυτό, πρέπει να ενεργοποιήσετε αυτήν την ενότητα με τη θέση των κοινών αρχείων. Αυτή η ενότητα συνοδεύεται από τον διερμηνέα Python. Δεν χρειάζεται να το εγκαταστήσετε. Δεδομένου ότι αυτή η ενότητα συγχωνεύεται με την http.server μονάδα στο python3, οπότε πρέπει να τρέξετε http.server για την εκτέλεση του διακομιστή ιστού στο python3. Ο τρόπος με τον οποίο ο διακομιστής ιστού μπορεί να χρησιμοποιηθεί για τον χειρισμό αιτήματος HTTP και την κοινή χρήση αρχείων, παρουσιάζεται σε αυτό το σεμινάριο.

Εκτελέστε τον διακομιστή Web από το τερματικό

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







$ python3 -m http.υπηρέτης



Η ακόλουθη έξοδος θα εμφανιστεί εάν ο διακομιστής ιστού έχει ξεκινήσει σωστά. Πατήστε CTRL+C για διακοπή του διακομιστή.




Εκτελέστε την ακόλουθη εντολή για να ξεκινήσετε τον διακομιστή ιστού στη θύρα 8080.





$ python3 -m http.υπηρέτης 8080

Η ακόλουθη έξοδος θα εμφανιστεί εάν ο διακομιστής ιστού έχει ξεκινήσει στη θύρα 8080.



Εκτελέστε τον διακομιστή Web χρησιμοποιώντας σενάριο Python

Εκτελέστε τις ακόλουθες εντολές για να δημιουργήσετε ένα φάκελο με όνομα Ιστός και μεταβείτε στο φάκελο. Όλα τα αρχεία σεναρίων και τα αρχεία HTML αυτού του σεμιναρίου θα δημιουργηθούν μέσα σε αυτόν το φάκελο.

$ mkdir ιστός

$CDΙστός

Δημιουργήστε ένα αρχείο HTML με όνομα testHTML.html μεσα στην Ιστός φάκελο με το ακόλουθο σενάριο. Αυτό το αρχείο θα προβληθεί αργότερα από τον διακομιστή ιστού.

testHTML.html

< html >>

< κεφάλι >>

< τίτλος >>

Δοκιμάστε τον Python Web Server

</ τίτλος >>

</ κεφάλι >>

< σώμα >>

< κέντρο >>

< img src='logo.jpeg' τα παντα='Η εικόνα δεν βρέθηκε'/>>

< η2 στυλ='χρώμα: πράσινο'>>Συγχαρητήρια! Ο διακομιστής Web λειτουργεί με επιτυχία.</ η2 >>

< Π >>Επίσκεψη< προς το href='www.linuxhint.com'>>LinuxHint.com</ προς το >>για περισσότερα μαθήματα σχετικά με την Python</ Π >>

</ κέντρο >>

</ σώμα >>

</ html >>

Παράδειγμα-1: Εκτελέστε τον διακομιστή ιστού στον συγκεκριμένο αριθμό θύρας

Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο για να εκτελέσετε τον διακομιστή ιστού στη θύρα 8008. http.server η ενότητα έχει εισαχθεί για την εκτέλεση του διακομιστή ιστού και το SocketServer η μονάδα έχει εισαχθεί για να χειριστεί το αίτημα HTTP που προέρχεται από τη θύρα 8080. Ένα αντικείμενο με όνομα Χειριστής έχει δημιουργηθεί για να χειρίζεται τα αιτήματα HTTP. για πάντα() η λειτουργία καλείται να εκτελέσει τον διακομιστή ιστού. Δεν έχει προστεθεί καμία προϋπόθεση τερματισμού στο σενάριο. Έτσι, το σενάριο θα δημιουργήσει σφάλμα όταν ο χρήστης προσπαθήσει να σταματήσει τον διακομιστή.

# Εισαγωγή μονάδας διακομιστή

εισαγωγήhttpυπηρέτης

# Εισαγωγή μονάδας SocketServer

εισαγωγήsocketserver


# Ορίστε τον αριθμό θύρας

Λιμάνι= 8080

# Δημιουργία αντικειμένου για το χειρισμό αιτημάτων HTTP

Χειριστής=httpυπηρέτηςΤοSimpleHTTPRequestHandler


# Εκτελέστε τον διακομιστή για πάντα για να χειριστείτε τα αιτήματα HTTP

μεsocketserver.TCPServer(('',Λιμάνι),Χειριστής) όπως καιhttpd:

Τυπώνω('Ο διακομιστής Web εκτελείται στη διεύθυνση http: // localhost:%s'%Λιμάνι)

httpdσερβίρετε_για πάντα()

Παραγωγή

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω σεναρίου.


Η λίστα των αρχείων και του φακέλου της θέσης σεναρίου θα εμφανιστεί εάν η ακόλουθη διεύθυνση URL εκτελείται από το πρόγραμμα περιήγησης.

http: // localhost: 8080

Εάν ο χρήστης πατήσει CTRL+C από το τερματικό ή πατήσει το κουμπί διακοπής από τον επεξεργαστή PyCharm, θα εμφανιστεί το ακόλουθο μήνυμα λάθους. Αυτό το πρόβλημα λύθηκε στο επόμενο παράδειγμα αυτού του σεμιναρίου.

Παράδειγμα-2: Εκτελέστε τον διακομιστή ιστού με τον αριθμό θύρας που ορίζεται από τη γραμμή εντολών

Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο για να εκτελέσετε έναν διακομιστή ιστού στη συγκεκριμένη θύρα εάν το όρισμα της γραμμής εντολών δίνει τον αριθμό θύρας. Διαφορετικά, η 5000 θα χρησιμοποιηθεί ως προεπιλεγμένη θύρα. sys Η ενότητα έχει εισαχθεί στο σενάριο για να διαβάσει τις τιμές του ορίσματος της γραμμής εντολών. δοκιμάστε-εκτός μπλοκ έχει προστεθεί στο σενάριο για να χειριστεί το σφάλμα όταν ο χρήστης προσπαθεί να σταματήσει τον διακομιστή. Εάν εμφανιστεί η εξαίρεση KeyboardInterrupt μετά την εκτέλεση του διακομιστή, τότε το Κλείσε() θα κληθεί να σταματήσει ο διακομιστής ιστού.

# Εισαγωγή μονάδας διακομιστή

εισαγωγήhttpυπηρέτης

# Εισαγωγή μονάδας SocketServer

εισαγωγήsocketserver

# Εισαγωγή ενότητας sys

εισαγωγή sys


προσπαθήστε:

# Ορίστε τον αριθμό θύρας

αν sysΤοargv[1:]:

Λιμάνι= int(sysΤοargv[1])

αλλού:

Λιμάνι= 5000

# Ορίστε τη διεύθυνση IP

διακομιστή_διεύθυνση= («127.0.0.1»,Λιμάνι)

# Δημιουργία αντικειμένου για το χειρισμό αιτημάτων HTTP

Χειριστής=httpυπηρέτηςΤοSimpleHTTPRequestHandler


# Εκτελέστε τον διακομιστή ιστού για πάντα για να χειριστείτε τα αιτήματα HTTP

μεsocketserver.TCPServer(('',Λιμάνι),Χειριστής) όπως καιhttpd:

Τυπώνω('Ο διακομιστής Web εκτελείται στη διεύθυνση http: // localhost:%s'%Λιμάνι)

httpdσερβίρετε_για πάντα()

# Διακόπηκε ο διακομιστής

εκτός Πληκτρολόγιο:

httpdδιακομιστής_κλείσιμο()

Τυπώνω('Ο διακομιστής έχει σταματήσει.')

Παραγωγή

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

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

Ανοίξτε το παράθυρο διαλόγου διαμόρφωσης από το μενού Εκτέλεση του επεξεργαστή PyCharm για να ορίσετε την τιμή του ορίσματος της γραμμής εντολών. Το πεδίο Parameters χρησιμοποιείται για τον ορισμό του ορίσματος της γραμμής εντολών και το 3000 ορίζεται εδώ ως τιμή ορίσματος.

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

Παράδειγμα-3: Εκτελέστε τον διακομιστή ιστού με το αρχείο HTML

Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο για να εκτελέσετε τον διακομιστή ιστού καθορίζοντας το αρχείο HTML για τη βασική διεύθυνση URL. Το όνομα κεντρικού υπολογιστή και ο αριθμός θύρας έχουν οριστεί στην αρχή του σεναρίου. PythonServer class έχει ορίσει στο σενάριο να εμφανίζει το αρχείο HTML στο πρόγραμμα περιήγησης όταν αρχίσει να λειτουργεί ο διακομιστής ιστού.

# Εισαγωγή μονάδας διακομιστή

εισαγωγήhttpυπηρέτης


# Ορίστε το όνομα κεντρικού υπολογιστή

ΠΛΗΘΟΣ= 'localhost'

# Ορίστε τον αριθμό θύρας

ΛΙΜΑΝΙ= 4000


# Ορισμός κλάσης για εμφάνιση της σελίδας ευρετηρίου του διακομιστή ιστού

τάξηPythonServer(httpυπηρέτηςΤοSimpleHTTPRequestHandler):

defdo_GET(εαυτός):

αν εαυτόςΤομονοπάτι == '/':

εαυτόςΤομονοπάτι = 'testHTML.html'

ΕΠΙΣΤΡΟΦΗhttpυπηρέτηςΤοSimpleHTTPRequestHandlerΤοdo_GET(εαυτός)


# Δηλώστε το αντικείμενο της τάξης

webServer=httpυπηρέτηςΤοHTTPServer((ΠΛΗΘΟΣ,ΛΙΜΑΝΙ),PythonServer)


# Εκτυπώστε τη διεύθυνση URL του διακομιστή ιστού

Τυπώνω('Ο διακομιστής ξεκίνησε http: //%s:%s'%(ΠΛΗΘΟΣ,ΛΙΜΑΝΙ))


προσπαθήστε:

# Εκτελέστε τον διακομιστή ιστού

webServer.σερβίρετε_για πάντα()

εκτός Πληκτρολόγιο:

# Διακοπή διακομιστή ιστού

webServer.διακομιστής_κλείσιμο()

Τυπώνω('Ο διακομιστής έχει σταματήσει.')

Παραγωγή

Η ακόλουθη έξοδος θα εμφανιστεί εκτελώντας το παραπάνω σενάριο.

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

συμπέρασμα

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