Jak korzystać z Pythona SimpleHTTPServer

How Use Python Simplehttpserver



Głównym zadaniem serwera WWW jest obsługa żądań HTTP od klienta. Czeka na żądania HTTP pochodzące z określonego adresu IP i numeru portu, obsługuje żądanie i odsyła odpowiedź klienta. Python używa SimpleHTTPSerwer moduł do błyskawicznego tworzenia serwera WWW i łatwego serwowania zawartości pliku z serwera. Może być również używany do udostępniania plików. W tym celu musisz włączyć ten moduł z lokalizacją plików, które można udostępniać. Ten moduł jest dostarczany z interpreterem Pythona. Nie musisz go instalować. Ponieważ ten moduł jest połączony z http.serwer moduł w python3, więc musisz uruchomić http.serwer uruchomić serwer WWW w python3. W tym samouczku pokazano, w jaki sposób serwer WWW może być używany do obsługi żądań HTTP i udostępniania plików.

Uruchom serwer WWW z terminala

Uruchom następujące polecenie, aby uruchomić serwer internetowy z terminala. Jeśli w poleceniu nie zdefiniowano numeru portu, serwer WWW domyślnie uruchomi się na porcie 8000.







$ python3 -m http.serwer



Następujące dane wyjściowe pojawią się, jeśli serwer WWW zostanie uruchomiony poprawnie. CTRL+C jest naciśnięty, aby zatrzymać serwer.




Uruchom następujące polecenie, aby uruchomić serwer WWW na porcie 8080.





$ python3 -m http.serwer 8080

Poniższe dane wyjściowe pojawią się, jeśli serwer WWW zostanie uruchomiony na porcie 8080.



Uruchom serwer WWW za pomocą skryptu Python

Uruchom następujące polecenia, aby utworzyć folder o nazwie Sieć i przejdź do folderu. Wszystkie pliki skryptów i pliki HTML tego samouczka zostaną utworzone w tym folderze.

$ mkdir web

$Płyta CDSieć

Utwórz plik HTML o nazwie testHTML.html w środku Sieć folder z następującym skryptem. Ten plik zostanie później udostępniony z serwera WWW.

testHTML.html

< html >

< głowa >

< tytuł >

Przetestuj serwer WWW Pythona

</ tytuł >

</ głowa >

< ciało >

< środek >

< obrazek src=„logo.jpeg” wszystko='Nie znaleziono obrazu'/>

< h2 styl='Zielony kolor'>Gratulacje! Twój serwer sieciowy działa pomyślnie.</ h2 >

< P >Odwiedzać< do href=„www.linuxhint.com”>LinuxHint.com</ do >aby uzyskać więcej samouczków na temat Pythona</ P >

</ środek >

</ ciało >

</ html >

Przykład-1: Uruchom serwer WWW na określonym numerze portu

Utwórz plik Pythona za pomocą następującego skryptu, aby uruchomić serwer WWW na porcie 8008. http.serwer moduł został zaimportowany w celu uruchomienia serwera WWW, a SocketServer został zaimportowany moduł do obsługi żądania HTTP pochodzącego z portu 8080. Obiekt o nazwie Treser został stworzony do obsługi żądań HTTP. na zawsze() Funkcja jest wywoływana do uruchomienia serwera WWW. Do skryptu nie dodano żadnego warunku zakończenia. Tak więc skrypt wygeneruje błąd, gdy użytkownik spróbuje zatrzymać serwer.

# Importuj moduł serwera

importhttp.serwer

# Importuj moduł SocketServer

importserwer gniazd


# Ustaw numer portu

Port= 8080

# Utwórz obiekt do obsługi żądań HTTP

Treser=http.serwer.Prosta obsługa żądań HTTP


# Uruchom serwer na zawsze, aby obsłużyć żądania HTTP

zserwer gniazd.Serwer TCP(('',Port),Treser) jakhttpd:

wydrukować('Serwer WWW działa pod adresem http://localhost:%s'%Port)

httpd.służyć_na zawsze()

Wyjście

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu.


Lista plików i folderów lokalizacji skryptu zostanie wyświetlona, ​​jeśli z przeglądarki zostanie wykonany następujący adres URL.

http://host lokalny:8080

Jeśli użytkownik naciśnie klawisze CTRL+C z terminala lub naciśnie przycisk stop w edytorze PyCharm, zostanie wyświetlony następujący komunikat o błędzie. Ten problem został rozwiązany w następnym przykładzie tego samouczka.

Przykład-2: Uruchom serwer WWW z numerem portu zdefiniowanym w wierszu poleceń

Utwórz plik Pythona z następującym skryptem, aby uruchomić serwer WWW na określonym porcie, jeśli argument wiersza polecenia podaje numer portu; w przeciwnym razie 5000 będzie używany jako port domyślny. system moduł został zaimportowany do skryptu w celu odczytania wartości argumentów wiersza poleceń. spróbuj z wyjątkiem w skrypcie został dodany blok obsługujący błąd, gdy użytkownik próbuje zatrzymać serwer. Jeśli po uruchomieniu serwera pojawi się wyjątek KeyboardInterrupt, to blisko() zostanie wywołana funkcja zatrzymania serwera WWW.

# Importuj moduł serwera

importhttp.serwer

# Importuj moduł SocketServer

importserwer gniazd

# Importuj moduł sys

import system


próbować:

# Ustaw numer portu

Jeśli system.argv[1:]:

Port= int(system.argv[1])

w przeciwnym razie:

Port= 5000

# Ustaw adres IP

adres serwera= („127.0.0.1”,Port)

# Utwórz obiekt do obsługi żądań HTTP

Treser=http.serwer.Prosta obsługa żądań HTTP


# Uruchom serwer WWW na zawsze, aby obsłużyć żądania HTTP

zserwer gniazd.Serwer TCP(('',Port),Treser) jakhttpd:

wydrukować('Serwer WWW działa pod adresem http://localhost:%s'%Port)

httpd.służyć_na zawsze()

# Zatrzymano serwer

z wyjątkiem Przerwanie klawiatury:

httpd.server_close()

wydrukować(„Serwer został zatrzymany”.)

Wyjście

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu bez wartości argumentu wiersza poleceń.

Następujące dane wyjściowe pojawią się, jeśli uruchomisz plik HTML, który został utworzony w poprzednim kroku z serwera WWW.

Otwórz okno dialogowe konfiguracji z menu Uruchom edytora PyCharm, aby ustawić wartość argumentu wiersza polecenia. Pole Parametry służy do ustawienia argumentu wiersza poleceń, a 3000 jest tutaj ustawione jako wartość argumentu.

Poniższe dane wyjściowe pojawią się, jeśli ponownie uruchomisz skrypt po ustawieniu wartości argumentu.

Przykład-3: Uruchom serwer WWW z plikiem HTML

Utwórz plik Pythona za pomocą następującego skryptu, aby uruchomić serwer WWW, definiując plik HTML dla podstawowego adresu URL. Nazwa hosta i numer portu zostały zdefiniowane na początku skryptu. PythonServer klasa została zdefiniowana w skrypcie, aby wyświetlić plik HTML w przeglądarce, gdy serwer WWW zostanie uruchomiony.

# Zaimportuj moduł serwera

importhttp.serwer


# Ustaw nazwę hosta

GOSPODARZ= 'Lokalny Gospodarz'

# Ustaw numer portu

PORT= 4000


# Zdefiniuj klasę, aby wyświetlić stronę indeksu serwera WWW

klasaPythonServer(http.serwer.Prosta obsługa żądań HTTP):

definitywniedo_GET(samego siebie):

Jeśli samego siebie.ścieżka == '/':

samego siebie.ścieżka = „testHTML.html”

powróthttp.serwer.Prosta obsługa żądań HTTP.do_GET(samego siebie)


# Zadeklaruj obiekt klasy

serwer internetowy=http.serwer.Serwer HTTP((GOSPODARZ,PORT),PythonServer)


# Wydrukuj adres URL serwera internetowego

wydrukować('Serwer uruchomiony http://%s:%s'%(GOSPODARZ,PORT))


próbować:

# Uruchom serwer WWW

serwer internetowy.służyć_na zawsze()

z wyjątkiem Przerwanie klawiatury:

# Zatrzymaj serwer WWW

serwer internetowy.server_close()

wydrukować(„Serwer został zatrzymany”.)

Wyjście

Następujące dane wyjściowe pojawią się wykonując powyższy skrypt.

Poniższa strona pojawi się w przeglądarce, jeśli zostanie uruchomiony podstawowy adres URL przeglądarki.

Wniosek

Różne sposoby wdrażania serwerów internetowych za pomocą http. serwer moduł pokazany w tym samouczku, aby pomóc użytkownikom Pythona w stworzeniu prostego serwera WWW w Pythonie.