İlginizi Çekebilir
  1. Ana Sayfa
  2. Yazılım
  3. Python Web Server Nasıl Oluşturulur?

Python Web Server Nasıl Oluşturulur?

030221_1643_PythonWebSe1.jpg
JFORCE - Dell Technologies İşbirliği Başlıyor!

Server nedir? Sorusuyla başlamak daha doğru olur. Web Server, oluşturmak istediğimiz web sitesini internette yayımlamak için gerekli alanın ayrılmasıdır bu ayırma işlemine Hosting de denebilir. Bizim burada yapacağımız şey Python’un belli kütüphanelerini kullanarak kendi web sitemizi hostlayacağız peki bunu nasıl ve neleri kullanarak yapacağız. Aslında gereken şeyler çok da zor değil bir tane Python IDE’si ve bu idenin içinde “http. serverPackage’nin yüklü olması yeterli ondan sonrası bizim yazacağımız kodlara kalıyor isterseniz artık yazmaya başlayalım.

Resim- 1

Package’ımızı tanımlayarak başlıyoruz. Burada as h’ı bilmeyenler olabilir diye söylüyorum takma gibi düşünebiliriz her seferinde http.server yazmak yerine h yazmamız yeterli ayrıca h yerine istediğimiz kısaltmayı tanımlamamız mümkün.

Resim- 2

Buradaki adımda ise “BaseHTTPRequstHandler” sınıfıyla aynı özellikleri taşıyan “ecoHandler” adında kendi sınıfımızı oluşturuyoruz. Bu sınıfı oluşturmamızın sebebi ise kullanacağımız bazı metotların bizden bir Handler sınıf isteyecek olması. Bizim burada yaptığımız işlem de bir Handler sınıfı oluşturmak.

Resim- 3

“send_ metodunu cevap gönder diye Türkçeleştirebiliriz. Bu metodun içine yazdığımız 200 sayısı neden 200 diye soracaksanız eğer size şu şekilde açıklayayım. Bu metodun üstüne gelip sağ tıklayıp önce “go to” ardından da “declaration or usage” kısmına tıklayarak bu metodun nasıl oluştuğunu görmüş olursunuz. Bu kodların nasıl yazıldığını biraz karıştırdıktan sonra aşağıdaki görseli buldum. Bu görselde parametre olarak girdiğimiz sayıların anlamları bulunmaktadır. Bu anlamlara göre size lazım olan sayıyı seçebilirsiniz.

Resim- 4

Resim- 5

Resim-5’de “send_header” metodunu görüyoruz bu metot anahtar kelime (Keyword) bir de değer (Value) olmak üzere 2 parametre alır. Bu parametreler hostlayacağımız web sayfasında görünürde hiçbir değişikliğe yol açmaz fakat yapılması zorunlu bir işlemdir burada bir başlık seçeriz ve bu başlık dahili bir ara bellekte saklanır. Ayrıca “send header” metodunu kullanıldığınız takdirde sonunda “_headers” metodunun kullanmanız zorunludur.

Resim- 6

Bu görselde web sayfamızı test amaçlı ekrana etki edecek şekilde bir yazı yazmasını sağlıyoruz.

Resim- 7

Port dediğimiz şey nedir ilk olarak ondan bahsedeyim. Port belli bir işleme ait olan mantıksal bir yapıdır. Bir port, bir aktarım katmanı protokolünden ve 16 bitlik “port numarasından” oluşur. 16 bitlik port numarasından oluştuğu için neden bir sayı değeri olarak tanımladığımızı açıklıyoruz.

Resim- 8

Bu işlemde gerçekleşen şey HTTPServer metodunun içine bir adres (PORT NO) bir de Handler sınıfı (Bizim kodumuza göre ismi: “ecoHandler”) alır bu sınıfı da yukarıda kendimiz oluşturmuştuk. Bunları metoda yazarak Serverımız için gerekli olan özellikleri girmiş oluyoruz.

Resim- 9

Resim 9’daki metot hostladığımız Serverın, biz kapayana kadar açık kalmasını sağlar.

Resim- 10

Resim 10’da gördüğümüz gibi kodları yazdıktan sonra kodumuzu çalıştırıyoruz. İnternet tarayıcısına “localhost:PORT NO” – Bizim yazdığımız koda göre yazılması gereken (“localhost:7000”) – yazıyoruz. Ardından açılan sayfa bizim hostladığımız kendi internet sayfamızdır. Bu sayfanın neden internette gördüğümüz internet sayfaları gibi olmadığını soracak olursanız eğer, bizim burada yaptığımız işlem web sayfası tasarlamak değil sunucu oluşturmak ve var olan dosyayı hostlamak.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org/ linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar:

https://www.mshowto.org

https://docs.python.org/3/library/http.server.html

TAGs: Web, Python, Web server, Web Geliştirme, Hosting, Localhost.

JFORCE - Dell Technologies İşbirliği Başlıyor!
Yorum Yap

Yazar Hakkında

Kaan Kasap, İstanbul'da 2001 yılında dünyaya geldim. Yüksek öğretimimi Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliği bölümünde devam ettirmekteyim. Üniversite kulübü olan BİTEK'de başkan yardımcısı olarak görev alıyorum. Son olarak ilgi alanlarım Cloud, Machine Learning, web ve Siber güvenlik.

Yorum Yap

Yorumlar (4)

  1. kaankasap_avatar
    1 ay önce

    Güzel anlatımınız için teşekkür ederim.

  2. zeynelugurlu_avatar
    1 ay önce

    Ellerine sağlık Kaan, çok güzel bir içerik olmuş.

  3. ahmetbah_avatar
    1 ay önce

    Bir web developer olarak python’un web tarafı hep ilgimi çekmiştir. Bu makale ilerleyen süreçte işime yarayabilir. Teşekkürler.

  4. gokhandogan_avatar
    1 ay önce

    Güzel bir yazı olmuş. Elinize sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir