Python, 1990’lı yıllarda Guido Van Rossum’un geliştirmeye başlamış olduğu ve şu an dünya genelinde yoğun olarak kullanılan bir programlama dilidir. Python özellikleri arasında, nesne yönelim, yorumsallık, modülerlik, etkileşim içeriği bulunmaktadır.
Dijital literatürde yer alan tüm programlama dilleri gibi Python da makine mantığıyla, insan mantığının arasında köprü görevi görmektedir. Bir programlama dilinin, makine mantığına yakınlıkta olması, makineler üzerinde daha hızlı işlem yapmayı ve daha hızlı çalışmayı sağlar. Çoğu zaman makine mantığına yaklaşmak, insan mantığından uzaklaşmayı gerektirir, bu yüzden de bir programlama dilinin öğrenilmesi oldukça zordur.
Python, sistemsel yapılandırması ile insan mantığına daha yakın şekilde kurgulanmıştır ve bu nedenle yüksek seviyede programlama dilleri arasında yer alır. Python, birçok programlama diline göre öğrenmesi ve uygulaması kolay diller arasındadır. Bu özelliği ile Python ile web sitesi yapmak, oldukça kolaydır.
Python İle Web Sitesi Yapma Aşamaları
Python ile web sitesi (Web Development) yapmanın bazı temel adımları bulunmaktadır. Python aracılığıyla web sitesi yapmak için Python’nun Fask Framework’ünden yararlanılmaktadır. Geliştirilmesi yapılacak olan ortama ilk aşamada Python kurulumunun yapılması gerekmektedir. Kurulum için gerekli dosyalara
Flask Aşaması
Flask, Python programlama dili üzerinden web geliştirmelerinin yapıldığı küçük boyutlu bir Framework’tür. Daha ufak ve çok komplike olmayan çalışmalar, Flask üzerinden kolayca yürütülebilir. Flask kurulumu, aşağıdaki şekilde gerçekleştirilir.
Routes Aşaması
Flask çalışma prensiplerinde, yönlendirme işlemleri oldukça kolaydır. İşlem adımları ise;
Import edilebilir yapıda olmayan fonksiyonlar, başka bir alanda çağrılıp, kullanılabilmektedir. Flask çalıştırıldığında ise varsayılan (Default) olarak localhost:5000 portu içinde çalışmaya başlayacaktır. Başka bir yöntem olarak, aşağıdaki örnekte olduğu gibi, “Run” fonksiyonunu kullanarak, belirlenen port numarası ile istenilen port üzerinden çalışması sağlanabilir.
API yerine arayüzü olan bir web projesi için run fonksiyonunu, 800 portunda çalıştırmak mümkün olmaktadır. Web projeleri local ortamlarda “debug_mod” ile çalıştırıldığında, hata verdiğinde bu hata tarayıcı tarafından da görüntülenmektedir. Bu bölümde de “Run” fonksiyonu içerisinde “debug=true” eklenmesi, “debug” modunda açılmasını sağlamaktadır.
Templates (Tema) Aşaması
Bu aşamada yapılacak ilk işlem, Route yapısının içerisinde barındırıldığı Python dosyasına “render_template” dosyasının aktarılması şeklinde olmaktadır.
Flask içerisinde HTML dosyaları her zaman “Template” klasöründe tutulmaktadır. Tanımlanan bir URL için HTML dosyalarının render edilmesi “render html” fonksiyonu ile yapılır.
Bu işlem ile Templates klasörü altında bulunan HTML dosyaları, bağlantılı URL’lerde render edilmektedir. Render aşamalarında, HTML yönüne Python değişkenleri de gönderilmektedir.
Bu işlem, web geliştirmelerinde en sık kullanılan özelliklerden biridir. Route alanından render_template fonksiyonuna parametre olarak gönderilmek istenilen değişken isim ve değerleri de burada tanımlanmaktadır.
Bu işlem ile oluşturulmuş olan Route çalıştırıldığı anda “training.html” render edilerek, “html variable” değişkeni içine “my_data” değeri atanarak, HTML tarafına iletilmektedir.
Dizinin HTML alanına “{{ }}” parantezler içerisine iletilen değişken yazılmaktadır. Bu şekilde parantez içerisinde alınan bölüm render edilmiş olmaktadır. Sisteme iletilen değişken yalnızca “String” şeklinde değil, tüm veri tiplerine gönderilebilmektedir. Örnek olarak; bir “array” tanımı ile göndererek, HTML alanında döngü kurabilirsiniz. “if” ve “array” içindeki değerler, belirtilen şartlara uygun olarak da işlenmektedir.
Yukarıda belirtilen örnekte, Database kullanıcı tablosundan, tüm kullanıcılar çekilerek, bir “array” biçiminde HTML tarafına gönderilmiştir. Ardından belirlenen “array” için bir döngü oluşturulmuştur.
Döngü içerisinde tablo oluşturulması ile aktif kullanıcılar mavi renkte, pasif kullanıcılar ise kırmızı renkte tanımlanarak, HTML alanındaki kullanıcıya iletilmiştir. Bu örnekte görüldüğü gibi pek çok koşullandırılmış ifade yazmak mümkündür.
Layout (Yerleşim) Aşaması
Python ile web sitesi yapmanın en önemli avantajlarından biri de Layout sistemleridir. Layout sisteminin kullanım amacı şu şekilde özetlenebilir. 5 sayfadan oluşan bir kişisel web sitesi yaparken, “Ana Sayfa”, “İletişim”, “Hakkımdaki Bilgiler”, “Hobilerim”, “Kitap Önerilerim” gibi sayfalar açmak mümkündür.
Açılan sayfalardan her biri için birer adet “Banner” alanı ve “Footer” kısmı oluşturulabilir. Template Engine kullanılmadığı zaman açılan her 5 sayfa için, “Banner” ve “Footer” alanlarına ait HTML kodlarının her sayfaya “Kopyala / Yapıştır” yöntemi ile eklenmesi gerekir.
Her sayfada aynı kod kullanımı olduğunda, hem tekrar oluşmakta hem de üzerlerinde değişiklik yapılacağı zaman ayrı ayrı güncelleme yapmak zorunluluğu ortaya çıkar. Web sitelerinde az sayıda sayfa olduğunda bu durum tolere edilebilir ancak 100’den fazla sayfaya sahip bir web sitesi için bu yöntem işlevsellik sunmamaktadır.
Bu noktada en büyük yardımcımız ise Layout yapısı alacaktır. Layout alanına tekrar edilecek olan alanların HTML kodları yazılarak, yeni bir HTML sayfası oluşturulur. Ardından sayfalarda değişiklik gösteren alanlar belirlenir. Bu işlem akışı web tasarım aşamasında hem zamandan hem de iş yükünden tasarruf sağlar.
Yukarıda örnek olarak verilen kod diziliminde “{ § § }” karakterlerinin arasına değişim göstermesi istenilen alan isimlendirilmektedir. Bu örnekte “Left –Menu” ve “Footer” arasında kalan alan değiştirilebilir kılınmıştır. Web sitesi tasarımında kullanılacak yeni sayfalarda, oluşturulan ana HTML dosyasının aşağıdaki örnekte olduğu gibi extend edilmesi gerekmektedir.
Extend işlemi tamamlandıktan sonra, değiştirilebilir kılınan “Block” alanı yeni sayfaya tekrar yazılarak, içinde o sayfada ne olması isteniyorsa, onlar tanımlanmalıdır. Bu şekilde “Banner” ve “Footer” alanları içerisinde yapılacak olan değişiklikler, sadece ana HTML dosyasından değiştirilerek, tüm sayfalarda değişikliğin uygulanması sağlanacaktır.
Static Aşaması
Python ile web sitesi yaparken, Static klasörünün amacı CSS, JS ve Image dosyalarını barındırmaktır. Tanımlı bu dosyalar, istenilen yerden “url_for” fonksiyonu ile çağırılabilir.
Error Handling Aşaması
Flask içerisinde oluşan ya da oluşabilecek olan hatalar yakalanmaktadır. Web sayfası hata verdiğinde, kullanıcının belirlenen HTML sayfasına yönlendirilmesi de mümkündür. Bunun için aşağıdaki kod tanımını yapmak gerekmektedir.
Örnekte belirtildiği gibi, kullanıcının web sitesinde bulunmayan bir URL’ye gitmesi durumunda, belirlemiş olduğumuz 404 hata sayfasına yönlendirme yapılmaktadır. Belirtilen alanlara kendi web site kodunuzu yazmanız yeterlidir.
Python Flask İle Web Sitesine Ana Sayfa Oluşturulması
Python ile web sitesi oluştururken Flask Templates klasörü içerisinde “Template” dosyalarını aramaktadır. Bunun için öncelikle Python App klasörü açılarak yeni bir “Templates” dosyası oluşturmak gerekir. Templates klasörü oluşturulduktan sonra içerisinde “index.html” adında bir dosya tanımlanmalıdır. Tanımlanan “index.html” dosyası açılır ve aşağıda belirtilen HTML kodları eklenir.
HTML-Kodu:
Python Flask Bucket List App
Python Flask App
Bucket List App
Bucket List
İlgili port üzerine yönlendir.
Bucket List
İlgili port üzerine yönlendirme yapılmıştır.
Bucket List
Yeni port tanımlanmıştır.
Bucket List
Birden fazla port bulunmuştur.
Bucket List
Portlar arasında geçiş yapılmıştır.
Bucket List
Tanımlı tüm portlar aktiftir.
© Company 2021
Ardından “app.py” dosyası açılarak, “render_template” import edilmelidir. Bu işlem template dosyalarının yorumlanmasında kullanılmaktadır.
Ardından “main_method” düzenlemesi yapılır. Bir sonraki işlem adımı ise yorumlanmış “Template” dosyasının return edilmesi olacaktır.
Son aşamada tüm değişikliklerin kaydedilmesi. Server yeniden başlatılarak, web tarayıcısından
Alıntı:
Hosting - Arif USLU
Dijital literatürde yer alan tüm programlama dilleri gibi Python da makine mantığıyla, insan mantığının arasında köprü görevi görmektedir. Bir programlama dilinin, makine mantığına yakınlıkta olması, makineler üzerinde daha hızlı işlem yapmayı ve daha hızlı çalışmayı sağlar. Çoğu zaman makine mantığına yaklaşmak, insan mantığından uzaklaşmayı gerektirir, bu yüzden de bir programlama dilinin öğrenilmesi oldukça zordur.
Python, sistemsel yapılandırması ile insan mantığına daha yakın şekilde kurgulanmıştır ve bu nedenle yüksek seviyede programlama dilleri arasında yer alır. Python, birçok programlama diline göre öğrenmesi ve uygulaması kolay diller arasındadır. Bu özelliği ile Python ile web sitesi yapmak, oldukça kolaydır.
Python İle Web Sitesi Yapma Aşamaları
Python ile web sitesi (Web Development) yapmanın bazı temel adımları bulunmaktadır. Python aracılığıyla web sitesi yapmak için Python’nun Fask Framework’ünden yararlanılmaktadır. Geliştirilmesi yapılacak olan ortama ilk aşamada Python kurulumunun yapılması gerekmektedir. Kurulum için gerekli dosyalara
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
ulaşabilirsiniz. Flask Aşaması
Flask, Python programlama dili üzerinden web geliştirmelerinin yapıldığı küçük boyutlu bir Framework’tür. Daha ufak ve çok komplike olmayan çalışmalar, Flask üzerinden kolayca yürütülebilir. Flask kurulumu, aşağıdaki şekilde gerçekleştirilir.
- Python içerisinde “Pycharm” kısmına girilir.
- “Setting” seçilir.
- Ardından “Project Interpreter” bölümüne giriş yapılır.
- Bu bölüme “Flask” kütüphanesi yüklenir.
- Flask kurulumu tamamlandıktan sonra, proje oluşturma safhasına geçilmektedir. Sırası ile;
- “Pycharm” üzerinden “New Project” seçilerek, yeni bir proje başlatılır.
- Menü içerisinde yer alan “Flask” sekmesine gidilir.
- Bu bölümde oluşturulacak yeni proje ismi tanımlanır.
- Ardından “Create” seçilerek proje oluşturma aşamasına geçilir.
Routes Aşaması
Flask çalışma prensiplerinde, yönlendirme işlemleri oldukça kolaydır. İşlem adımları ise;
- Bir kütüphanede bulunan tanımlı modül içerisinde tanımlar, başka bir modül içine aktarılabilir. Buna kısaca “Import etmek” denilmektedir. Python içerisine Flask kütüphanesi import edilmektedir.
- Ardından Flask sınıflarından alınan örneğe, URL tanımlaması yapılmaktadır.
Import edilebilir yapıda olmayan fonksiyonlar, başka bir alanda çağrılıp, kullanılabilmektedir. Flask çalıştırıldığında ise varsayılan (Default) olarak localhost:5000 portu içinde çalışmaya başlayacaktır. Başka bir yöntem olarak, aşağıdaki örnekte olduğu gibi, “Run” fonksiyonunu kullanarak, belirlenen port numarası ile istenilen port üzerinden çalışması sağlanabilir.
API yerine arayüzü olan bir web projesi için run fonksiyonunu, 800 portunda çalıştırmak mümkün olmaktadır. Web projeleri local ortamlarda “debug_mod” ile çalıştırıldığında, hata verdiğinde bu hata tarayıcı tarafından da görüntülenmektedir. Bu bölümde de “Run” fonksiyonu içerisinde “debug=true” eklenmesi, “debug” modunda açılmasını sağlamaktadır.
Templates (Tema) Aşaması
Bu aşamada yapılacak ilk işlem, Route yapısının içerisinde barındırıldığı Python dosyasına “render_template” dosyasının aktarılması şeklinde olmaktadır.
Flask içerisinde HTML dosyaları her zaman “Template” klasöründe tutulmaktadır. Tanımlanan bir URL için HTML dosyalarının render edilmesi “render html” fonksiyonu ile yapılır.
Bu işlem ile Templates klasörü altında bulunan HTML dosyaları, bağlantılı URL’lerde render edilmektedir. Render aşamalarında, HTML yönüne Python değişkenleri de gönderilmektedir.
Bu işlem, web geliştirmelerinde en sık kullanılan özelliklerden biridir. Route alanından render_template fonksiyonuna parametre olarak gönderilmek istenilen değişken isim ve değerleri de burada tanımlanmaktadır.
Bu işlem ile oluşturulmuş olan Route çalıştırıldığı anda “training.html” render edilerek, “html variable” değişkeni içine “my_data” değeri atanarak, HTML tarafına iletilmektedir.
Dizinin HTML alanına “{{ }}” parantezler içerisine iletilen değişken yazılmaktadır. Bu şekilde parantez içerisinde alınan bölüm render edilmiş olmaktadır. Sisteme iletilen değişken yalnızca “String” şeklinde değil, tüm veri tiplerine gönderilebilmektedir. Örnek olarak; bir “array” tanımı ile göndererek, HTML alanında döngü kurabilirsiniz. “if” ve “array” içindeki değerler, belirtilen şartlara uygun olarak da işlenmektedir.
Yukarıda belirtilen örnekte, Database kullanıcı tablosundan, tüm kullanıcılar çekilerek, bir “array” biçiminde HTML tarafına gönderilmiştir. Ardından belirlenen “array” için bir döngü oluşturulmuştur.
Döngü içerisinde tablo oluşturulması ile aktif kullanıcılar mavi renkte, pasif kullanıcılar ise kırmızı renkte tanımlanarak, HTML alanındaki kullanıcıya iletilmiştir. Bu örnekte görüldüğü gibi pek çok koşullandırılmış ifade yazmak mümkündür.
Layout (Yerleşim) Aşaması
Python ile web sitesi yapmanın en önemli avantajlarından biri de Layout sistemleridir. Layout sisteminin kullanım amacı şu şekilde özetlenebilir. 5 sayfadan oluşan bir kişisel web sitesi yaparken, “Ana Sayfa”, “İletişim”, “Hakkımdaki Bilgiler”, “Hobilerim”, “Kitap Önerilerim” gibi sayfalar açmak mümkündür.
Açılan sayfalardan her biri için birer adet “Banner” alanı ve “Footer” kısmı oluşturulabilir. Template Engine kullanılmadığı zaman açılan her 5 sayfa için, “Banner” ve “Footer” alanlarına ait HTML kodlarının her sayfaya “Kopyala / Yapıştır” yöntemi ile eklenmesi gerekir.
Her sayfada aynı kod kullanımı olduğunda, hem tekrar oluşmakta hem de üzerlerinde değişiklik yapılacağı zaman ayrı ayrı güncelleme yapmak zorunluluğu ortaya çıkar. Web sitelerinde az sayıda sayfa olduğunda bu durum tolere edilebilir ancak 100’den fazla sayfaya sahip bir web sitesi için bu yöntem işlevsellik sunmamaktadır.
Bu noktada en büyük yardımcımız ise Layout yapısı alacaktır. Layout alanına tekrar edilecek olan alanların HTML kodları yazılarak, yeni bir HTML sayfası oluşturulur. Ardından sayfalarda değişiklik gösteren alanlar belirlenir. Bu işlem akışı web tasarım aşamasında hem zamandan hem de iş yükünden tasarruf sağlar.
Yukarıda örnek olarak verilen kod diziliminde “{ § § }” karakterlerinin arasına değişim göstermesi istenilen alan isimlendirilmektedir. Bu örnekte “Left –Menu” ve “Footer” arasında kalan alan değiştirilebilir kılınmıştır. Web sitesi tasarımında kullanılacak yeni sayfalarda, oluşturulan ana HTML dosyasının aşağıdaki örnekte olduğu gibi extend edilmesi gerekmektedir.
Extend işlemi tamamlandıktan sonra, değiştirilebilir kılınan “Block” alanı yeni sayfaya tekrar yazılarak, içinde o sayfada ne olması isteniyorsa, onlar tanımlanmalıdır. Bu şekilde “Banner” ve “Footer” alanları içerisinde yapılacak olan değişiklikler, sadece ana HTML dosyasından değiştirilerek, tüm sayfalarda değişikliğin uygulanması sağlanacaktır.
Static Aşaması
Python ile web sitesi yaparken, Static klasörünün amacı CSS, JS ve Image dosyalarını barındırmaktır. Tanımlı bu dosyalar, istenilen yerden “url_for” fonksiyonu ile çağırılabilir.
Error Handling Aşaması
Flask içerisinde oluşan ya da oluşabilecek olan hatalar yakalanmaktadır. Web sayfası hata verdiğinde, kullanıcının belirlenen HTML sayfasına yönlendirilmesi de mümkündür. Bunun için aşağıdaki kod tanımını yapmak gerekmektedir.
Örnekte belirtildiği gibi, kullanıcının web sitesinde bulunmayan bir URL’ye gitmesi durumunda, belirlemiş olduğumuz 404 hata sayfasına yönlendirme yapılmaktadır. Belirtilen alanlara kendi web site kodunuzu yazmanız yeterlidir.
Python Flask İle Web Sitesine Ana Sayfa Oluşturulması
Python ile web sitesi oluştururken Flask Templates klasörü içerisinde “Template” dosyalarını aramaktadır. Bunun için öncelikle Python App klasörü açılarak yeni bir “Templates” dosyası oluşturmak gerekir. Templates klasörü oluşturulduktan sonra içerisinde “index.html” adında bir dosya tanımlanmalıdır. Tanımlanan “index.html” dosyası açılır ve aşağıda belirtilen HTML kodları eklenir.
HTML-Kodu:
Python Flask Bucket List App
[*]Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
[*]Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
[*]Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
Python Flask App
Bucket List App
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
Bucket List
İlgili port üzerine yönlendir.
Bucket List
İlgili port üzerine yönlendirme yapılmıştır.
Bucket List
Yeni port tanımlanmıştır.
Bucket List
Birden fazla port bulunmuştur.
Bucket List
Portlar arasında geçiş yapılmıştır.
Bucket List
Tanımlı tüm portlar aktiftir.
© Company 2021
Ardından “app.py” dosyası açılarak, “render_template” import edilmelidir. Bu işlem template dosyalarının yorumlanmasında kullanılmaktadır.
Ardından “main_method” düzenlemesi yapılır. Bir sonraki işlem adımı ise yorumlanmış “Template” dosyasının return edilmesi olacaktır.
Son aşamada tüm değişikliklerin kaydedilmesi. Server yeniden başlatılarak, web tarayıcısından
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
adresine gidilirse, aşağıdaki görsel ekranda görüntülenecektir.Alıntı:
Hosting - Arif USLU
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.