Python SimpleHTTPServer Nasıl Kullanılır

How Use Python Simplehttpserver



Web sunucusunun ana görevi, istemciden gelen HTTP isteklerini yerine getirmektir. Belirli IP adresinden ve port numarasından gelen HTTP isteklerini bekler, isteği işler ve istemcinin yanıtını geri gönderir. Python kullanır SimpleHTTPSunucusu Bir web sunucusu oluşturmak için modül, dosyanın içeriğini sunucudan anında ve kolayca sunar. Dosya paylaşımı için de kullanılabilir. Bunun için paylaşılabilir dosyaların konumu ile bu modülü etkinleştirmeniz gerekir. Bu modül Python yorumlayıcısıyla birlikte gelir. Yüklemenize gerek yok. Bu modül ile birleştirildiğinden http.sunucu python3'teki modül, bu yüzden çalıştırmanız gerekiyor http.sunucu web sunucusunu python3'te çalıştırmak için. HTTP isteğini işlemek ve dosyaları paylaşmak için web sunucusunun nasıl kullanılabileceği bu eğitimde gösterilmiştir.

Web Sunucusunu terminalden çalıştırın

Web sunucusunu terminalden çalıştırmak için aşağıdaki komutu çalıştırın. Komutta herhangi bir port numarası tanımlanmamışsa, web sunucusu varsayılan olarak 8000 portundan başlayacaktır.







$ python3 -m http.sunucu



Web sunucusu düzgün bir şekilde başlatılırsa aşağıdaki çıktı görünecektir. Sunucuyu durdurmak için CTRL+C'ye basılır.




Web sunucusunu 8080 bağlantı noktasında başlatmak için aşağıdaki komutu çalıştırın.





$ python3 -m http.sunucu 8080

Web sunucusu 8080 bağlantı noktasında başlatılırsa aşağıdaki çıktı görünecektir.



Python betiğini kullanarak Web Sunucusunu çalıştırın

adlı bir klasör oluşturmak için aşağıdaki komutları çalıştırın. ve klasöre gidin. Bu öğreticinin tüm komut dosyaları ve HTML dosyaları bu klasörde oluşturulacaktır.

$ mkdir web

$CD

adlı bir HTML dosyası oluşturun testHTML.html içinde Aşağıdaki komut dosyası ile klasör. Bu dosya daha sonra web sunucusundan sunulacaktır.

testHTML.html

< html >

< kafa >

< Başlık >

Python Web Sunucusunu Test Edin

</ Başlık >

</ kafa >

< vücut >

< merkez >

< resim kaynak='logo.jpeg' her şey='Resim bulunamadı'/>

< h2 stil='yeşil renk'>Tebrikler! Web Sunucunuz Başarıyla Çalışıyor.</ h2 >

< P >Ziyaret< ile href='www.linuxhint.com'>LinuxHint.com</ ile >Python hakkında daha fazla eğitim için</ P >

</ merkez >

</ vücut >

</ html >

Örnek-1: Web sunucusunu belirli bağlantı noktası numarasında çalıştırın

Web sunucusunu 8008 bağlantı noktasında çalıştırmak için aşağıdaki komut dosyasıyla bir python dosyası oluşturun. http.sunucu modül, web sunucusunu çalıştırmak için içe aktarıldı ve SocketSunucu modülü, 8080 bağlantı noktasından gelen HTTP isteğini işlemek için içe aktarıldı. adlı bir nesne işleyici HTTP isteklerini işlemek için oluşturuldu. sonsuza kadar() web sunucusunu çalıştırmak için işlev çağrılır. Komut dosyasına herhangi bir sonlandırma koşulu eklenmedi. Bu nedenle, kullanıcı sunucuyu durdurmaya çalıştığında komut dosyası bir hata üretecektir.

# Sunucu modülünü içe aktar

içe aktarmakhttp.sunucu

# SocketServer modülünü içe aktar

içe aktarmaksoket sunucusu


# Bağlantı noktası numarasını ayarlayın

Liman= 8080

# HTTP isteklerini işlemek için nesne oluştur

işleyici=http.sunucu.SimpleHTTPRequestHandler


# HTTP isteklerini işlemek için sunucuyu sonsuza kadar çalıştırın

ile birliktesoket sunucusu.TCPSunucusu(('',Liman),işleyici) olarakhttpd:

Yazdır('Web Sunucusu http://localhost:%s konumunda çalışıyor'%Liman)

httpd.serve_forever()

Çıktı

Yukarıdaki betiği çalıştırdıktan sonra aşağıdaki çıktı görünecektir.


Aşağıdaki URL tarayıcıdan yürütülürse, komut dosyası konumunun dosya ve klasörlerinin listesi gösterilecektir.

http://localhost:8080

Kullanıcı terminalden CTRL+C'ye basarsa veya PyCharm editöründen stop düğmesine basarsa, aşağıdaki hata mesajı görüntülenecektir. Bu sorun, bu öğreticinin sonraki örneğinde çözülmüştür.

Örnek-2: Web sunucusunu komut satırı tarafından tanımlanan bağlantı noktası numarasıyla çalıştırın

Komut satırı bağımsız değişkeni bağlantı noktası numarasını veriyorsa, belirli bağlantı noktasında bir web sunucusunu çalıştırmak için aşağıdaki komut dosyasıyla bir python dosyası oluşturun; aksi takdirde, varsayılan bağlantı noktası olarak 5000 kullanılacaktır. sistem modülü, komut satırı bağımsız değişken değerlerini okumak için komut dosyasına aktarıldı. dene-hariç kullanıcı sunucuyu durdurmaya çalıştığında hatayı işlemek için komut dosyasına blok eklendi. Sunucuyu çalıştırdıktan sonra KeyboardInterrupt istisnası görünürse, o zaman kapat() web sunucusunu durdurmak için işlev çağrılır.

# Sunucu modülünü içe aktar

içe aktarmakhttp.sunucu

# SocketServer modülünü içe aktar

içe aktarmaksoket sunucusu

# Sistem modülünü içe aktar

içe aktarmak sistem


denemek:

# Bağlantı noktası numarasını ayarlayın

Eğer sistem.bağımsız değişken[1:]:

Liman= int(sistem.bağımsız değişken[1])

Başka:

Liman= 5000

# IP adresini ayarlayın

sunucu adresi= ('127.0.0.1',Liman)

# HTTP isteklerini işlemek için nesne oluştur

işleyici=http.sunucu.SimpleHTTPRequestHandler


# HTTP isteklerini işlemek için web sunucusunu sonsuza kadar çalıştırın

ile birliktesoket sunucusu.TCPSunucusu(('',Liman),işleyici) olarakhttpd:

Yazdır('Web Sunucusu http://localhost:%s konumunda çalışıyor'%Liman)

httpd.serve_forever()

# Sunucuyu durdurdu

hariç Klavye Kesintisi:

httpd.server_close()

Yazdır('Sunucu durduruldu.')

Çıktı

Yukarıdaki betiği komut satırı argüman değeri olmadan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Bir önceki adımda oluşturulan HTML dosyasını web sunucusundan çalıştırırsanız aşağıdaki çıktı görünecektir.

Komut satırı bağımsız değişken değerini ayarlamak için PyCharm düzenleyicisinin Çalıştır menüsünden yapılandırma iletişim kutusunu açın. Parametreler alanı komut satırı argümanını ayarlamak için kullanılır ve burada argüman değeri olarak 3000 ayarlanır.

Argüman değerini ayarladıktan sonra betiği tekrar çalıştırırsanız aşağıdaki çıktı görünecektir.

Örnek-3: Web sunucusunu HTML dosyasıyla çalıştırın

Temel URL için HTML dosyasını tanımlayarak web sunucusunu çalıştırmak için aşağıdaki komut dosyasıyla bir python dosyası oluşturun. Ana bilgisayar adı ve bağlantı noktası numarası, komut dosyasının başında tanımlanmıştır. PythonSunucusu class, web sunucusu çalışmaya başladığında tarayıcıda HTML dosyasını görüntülemek için komut dosyasında tanımlamıştır.

# Sunucu modülünü içe aktarın

içe aktarmakhttp.sunucu


# Ana bilgisayar adını ayarlayın

EV SAHİBİ= 'yerel ana bilgisayar'

# Bağlantı noktası numarasını ayarlayın

LİMAN= 4000


# Web sunucusunun dizin sayfasını görüntülemek için sınıfı tanımlayın

sınıfPythonSunucusu(http.sunucu.SimpleHTTPRequestHandler):

tanımdo_GET(öz):

Eğer öz.yol == '/':

öz.yol = 'testHTML.html'

dönüşhttp.sunucu.SimpleHTTPRequestHandler.do_GET(öz)


# Sınıfın nesnesini bildir

Web sunucusu=http.sunucu.HTTPSunucusu((EV SAHİBİ,LİMAN),PythonSunucusu)


# Web sunucusunun URL'sini yazdırın

Yazdır('Sunucu http://%s:%s'yi başlattı%(EV SAHİBİ,LİMAN))


denemek:

# Web sunucusunu çalıştırın

Web sunucusu.serve_forever()

hariç Klavye Kesintisi:

# Web sunucusunu durdur

Web sunucusu.server_close()

Yazdır('Sunucu durduruldu.')

Çıktı

Yukarıdaki komut dosyası yürütülürken aşağıdaki çıktı görünecektir.

Tarayıcının web sunucusunun temel URL'si yürütülürse, aşağıdaki sayfa tarayıcıda görünecektir.

Çözüm

kullanarak web sunucularını uygulamanın farklı yolları http. sunucu modülü, python kullanıcılarının Python'da basit bir web sunucusu oluşturmalarına yardımcı olmak için bu eğitimde gösterilmiştir.