Come usare Python SimpleHTTPServer

How Use Python Simplehttpserver



Il compito principale del server web è gestire le richieste HTTP dal client. Attende le richieste HTTP provenienti dal particolare indirizzo IP e numero di porta, gestisce la richiesta e restituisce la risposta del client. Python usa il SimpleHTTPServer modulo per creare un server web istantaneamente e servire facilmente il contenuto del file dal server. Può essere utilizzato anche per la condivisione di file. Per questo, devi abilitare questo modulo con la posizione dei file condivisibili. Questo modulo viene fornito con l'interprete Python. Non è necessario installarlo. Poiché questo modulo è unito a http.server modulo in python3, quindi devi eseguire http.server per eseguire il server web in python3. In questo tutorial è stato mostrato come utilizzare il server Web per gestire la richiesta HTTP e condividere file.

Esegui il Web Server dal terminale

Eseguire il comando seguente per eseguire il server web dal terminale. Se nel comando non è definito alcun numero di porta, il server web si avvierà per impostazione predefinita alla porta 8000.







$ python3 -m http.server



Il seguente output apparirà se il server web è stato avviato correttamente. Si preme CTRL+C per arrestare il server.




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





$ python3 -m http.server 8080

Il seguente output apparirà se il webserver viene avviato sulla porta 8080.



Esegui il server Web usando lo script Python

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 verranno creati all'interno di questa cartella.

$ mkdir web

$cdragnatela

Crea un file HTML chiamato testHTML.html dentro il ragnatela cartella con il seguente script. Questo file verrà servito dal server web in un secondo momento.

testHTML.html

< html >

< testa >

< titolo >

Testa il server Web Python

</ titolo >

</ testa >

< corpo >

< centro >

< img src='logo.jpeg' Tutto quanto='Immagine non trovata'/>

< h2 stile='colore: verde'>Congratulazioni! Il tuo server web è in esecuzione con successo.</ h2 >

< P >Visitare< a href='www.linuxhint.com'>LinuxHint.com</ a >per ulteriori tutorial su Python</ P >

</ centro >

</ corpo >

</ html >

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

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

# Importa modulo server

importarehttp.server

# Importa modulo SocketServer

importaresocketserver


# Imposta il numero di porta

porta= 8080

# Crea un oggetto per gestire le richieste HTTP

Gestore=http.server.SimpleHTTPRequestHandler


# Esegui il server per sempre per gestire le richieste HTTP

insieme asocketserver.TCPServer(('',porta),Gestore) comehttp:

Stampa('Il server Web è in esecuzione su http://localhost:%s'%porta)

httpd.servire_per sempre()

Produzione

Il seguente output verrà visualizzato dopo l'esecuzione dello script precedente.


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

http://localhost:8080

Se l'utente preme CTRL+C dal terminale o preme il pulsante stop dall'editor PyCharm, verrà visualizzato il seguente messaggio di errore. Questo problema è stato 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 su una particolare porta se l'argomento della riga di comando fornisce il numero di porta; in caso contrario, 5000 verrà utilizzata come porta predefinita. sistema modulo è stato importato nello script per leggere i valori degli argomenti della riga di comando. prova-tranne blocco è stato aggiunto nello script per gestire l'errore quando l'utente tenta di arrestare il server. Se viene visualizzata l'eccezione KeyboardInterrupt dopo aver eseguito il server, il chiudere() verrà chiamata la funzione per arrestare il server web.

# Importa modulo server

importarehttp.server

# Importa modulo SocketServer

importaresocketserver

# Importa modulo sys

importare sistema


Tentativo:

# Imposta il numero di porta

Se sistema.argv[1:]:

porta= int(sistema.argv[1])

altro:

porta= 5000

# Imposta l'indirizzo IP

indirizzo del server= ('127.0.0.1',porta)

# Crea un oggetto per gestire le richieste HTTP

Gestore=http.server.SimpleHTTPRequestHandler


# Esegui il server web per sempre per gestire le richieste HTTP

insieme asocketserver.TCPServer(('',porta),Gestore) comehttp:

Stampa('Il server Web è in esecuzione su http://localhost:%s'%porta)

httpd.servire_per sempre()

# Arrestato il server

tranne TastieraInterruzione:

httpd.server_close()

Stampa('Il server è fermo.')

Produzione

Il seguente output verrà visualizzato dopo aver eseguito lo script precedente senza il valore dell'argomento della riga di comando.

Il seguente output apparirà se si esegue il file HTML creato nel passaggio precedente dal server web.

Aprire la finestra di dialogo di configurazione dal menu Esegui dell'editor PyCharm per impostare il valore dell'argomento della riga di comando. Il campo Parametri viene utilizzato per impostare l'argomento della riga di comando e 3000 è impostato qui come valore dell'argomento.

Il seguente output apparirà se si esegue di nuovo 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 sono definiti all'inizio dello script. PythonServer La classe ha definito nello script per visualizzare il file HTML nel browser quando il server Web viene avviato.

# Importa il modulo server

importarehttp.server


# Imposta il nome host

OSPITE= 'host locale'

# Imposta il numero di porta

PORTA= 4000


# Definisci la classe per visualizzare la pagina dell'indice del server web

classePythonServer(http.server.SimpleHTTPRequestHandler):

defdo_GET(se stesso):

Se se stesso.il percorso == '/':

se stesso.il percorso = 'testHTML.html'

Restituzionehttp.server.SimpleHTTPRequestHandler.do_GET(se stesso)


# Dichiara l'oggetto della classe

server web=http.server.HTTPServer((OSPITE,PORTA),PythonServer)


# Stampa l'URL del server web

Stampa('Server avviato http://%s:%s'%(OSPITE,PORTA))


Tentativo:

# Esegui il server web

server web.servire_per sempre()

tranne TastieraInterruzione:

# Arresta il server web

server web.server_close()

Stampa('Il server è fermo.')

Produzione

Il seguente output apparirà eseguendo lo script sopra.

La pagina seguente verrà visualizzata nel browser se viene eseguito l'URL di base del browser del server web.

Conclusione

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