Come usare Python simplehttpserver

Come usare Python simplehttpserver

L'attività principale del server web è gestire le richieste HTTP dal client. Aspetta le richieste HTTP provenienti dal particolare indirizzo IP e numero di porta, gestisce la richiesta e invia la risposta del cliente indietro. Python usa il Simplehttpserver Modulo per creare un server Web Servire immediatamente e facilmente il contenuto del file dal server. Può essere utilizzato anche per la condivisione dei file. Per questo, devi abilitare questo modulo con la posizione dei file condivisibili. Questo modulo viene fornito con l'interprete di Python. Non è necessario installarlo. Poiché questo modulo è unito al http.server modulo in python3, quindi devi correre http.server Per eseguire il server web in python3. In che modo il server Web può essere utilizzato per gestire la richiesta HTTP e condividere i file, sono stati mostrati in questo tutorial.

Esegui il server Web dal terminale

Esegui il comando seguente per eseguire il server web dal terminale. Se nel comando non viene definito alcun numero di porta.

$ python3 -m http.server

Verrà visualizzato il seguente output se il server web viene avviato correttamente. Ctrl+C è premuto per fermare il server.


Esegui il comando seguente per avviare il server web alla porta 8080.

$ python3 -m http.Server 8080

Verrà visualizzato il seguente output se il server web viene avviato alla porta 8080.

Esegui il server Web utilizzando Python Script

Esegui i seguenti comandi per creare una cartella denominata ragnatela E vai alla cartella. Tutti i file di script e i file HTML di questo tutorial saranno creati all'interno di questa cartella.

$ mkdir web
$ CD Web

Crea un file HTML chiamato testhtml.html dentro il ragnatela cartella con il seguente script. Questo file verrà servito dal server web più tardi.

testhtml.html



<br>Prova il server Web Python<br>




Congratulazioni! Il tuo server web è in esecuzione correttamente.


Visita Linuxhint.com Per altri tutorial su Python




Esempio-1: eseguire il server web nel numero di porta specifico

Crea un file Python con il seguente script per eseguire il server Webs alla porta 8008. http.server Il modulo è stato importato per eseguire il server web e il Socketserver Il modulo è stato importato per gestire la richiesta HTTP proveniente dalla porta 8080. Un oggetto chiamato Gestore è stato creato per gestire le richieste HTTP. per sempre() La funzione è chiamata per eseguire il server web. Nessuna condizione di terminazione è stata aggiunta allo script. Quindi, lo script genererà un errore quando l'utente cerca di fermare il server.

# Importa modulo server
Importa http.server
# Importa modulo SocketServer
Importa SocketServer
# Imposta il numero di porta
porta = 8080
# Crea oggetto per la gestione delle richieste HTTP
Gestore = http.server.SimplehttprequestHandler
# Esegui il server per sempre per gestire le richieste HTTP
con Socketserver.Tcpserver (("", porta), gestore) come httpd:
Stampa ("Web Server è in esecuzione su http: // localhost: %s" %port)
httpd.serve_forever ()

Produzione

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.


L'elenco dei file e la cartella della posizione dello script verrà visualizzato se il seguente URL viene eseguito dal browser.

http: // localhost: 8080

Se l'utente preme CTRL+C dal terminale o preme il pulsante di arresto dall'editor PyCharm, verrà visualizzato il seguente messaggio di errore. Questo problema è risolto nel prossimo esempio di questo tutorial.

Esempio-2: eseguire il server web con il numero di porta definito dalla riga di comando

Crea un file Python con il seguente script per eseguire un server Web nella porta particolare se l'argomento della riga di comando fornisce il numero di porta; Altrimenti, 5000 verranno utilizzati come porta predefinita. sys Il modulo è stato importato nello script per leggere i valori degli argomenti di comando. Try-Except Il blocco è stato aggiunto nello script per gestire l'errore quando l'utente cerca di fermare il server. Se l'eccezione tastiera interrupt viene visualizzata dopo l'esecuzione del server, allora il vicino() La funzione verrà chiamata per fermare il server web.

# Importa modulo server
Importa http.server
# Importa modulo SocketServer
Importa SocketServer
# Importa modulo sys
Import sys
Tentativo:
# Imposta il numero di porta
se sys.argv [1:]:
porta = int (sys.argv [1])
altro:
porta = 5000
# Imposta l'indirizzo IP
server_address = ('127.0.0.1 ', porta)
# Crea oggetto per la gestione delle richieste HTTP
Gestore = http.server.SimplehttprequestHandler
# Esegui il server Web per sempre per gestire le richieste HTTP
con Socketserver.Tcpserver (("", porta), gestore) come httpd:
Stampa ("Web Server è in esecuzione su http: // localhost: %s" %port)
httpd.serve_forever ()
# Ha fermato il server
Tranne la tastiera interrupt:
httpd.server_close ()
stampa ("Il server viene interrotto.")

Produzione

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra senza valore dell'argomento della linea di comando.

Verrà visualizzato il seguente output se l'esecuzione del file HTML creato nel passaggio precedente dal WebServer.

Apri la finestra di dialogo Configurazione dal menu Esegui dell'editor PyCharm per impostare il valore dell'argomento della linea di comando. Il campo Parametri viene utilizzato per impostare l'argomento della riga di comando e 3000 sono impostati qui come valore dell'argomento.

Verrà visualizzato il seguente output se si esegue nuovamente lo script dopo aver impostato il valore dell'argomento.

Esempio-3: esegui il server Web con il file HTML

Crea un file Python con il seguente script per eseguire il server web definendo il file HTML per l'URL di base. Il nome host e il numero di porta hanno definito all'inizio dello script. Pythonserver La classe ha definito nello script per visualizzare il file HTML nel browser quando il server Web inizia in esecuzione.

# Importa il modulo server
Importa http.server
# Imposta il nome host
Host = "localhost"
# Imposta il numero di porta
Porta = 4000
# Definisci la classe per visualizzare la pagina dell'indice del server Web
Classe Pythonserver (HTTP.server.SimplehttprequestHandler):
def do_get (self):
se sé.Path == '/':
se stesso.Path = 'TestHtml.html '
restituire http.server.SimplehttprequestHandler.do_get (self)
# Dichiarare oggetto della classe
WebServer = http.server.Httpserver ((host, port), pythonserver)
# Stampa l'URL del server web
Stampa ("Server avviato http: //%s:%s"%(host, porta))
Tentativo:
# Esegui il Web Server
server web.serve_forever ()
Tranne la tastiera interrupt:
# Fermare il server web
server web.server_close ()
stampa ("Il server viene interrotto.")

Produzione

Il seguente output apparirà eseguendo lo script sopra.

La pagina seguente verrà visualizzata nel browser se l'URL di base del browser del server si esegue.

Conclusione

I diversi modi di implementare server Web utilizzando http. server Il modulo ha mostrato in questo tutorial per aiutare gli utenti di Python a creare un semplice server Web in Python.