Flask Dersleri

Flask Inheritance Block ve Include

Merhaba arkadaşlar,
Mobilhanem.com da Flask Dersleri eğitim serisine, Flask Inheritance Block yazısı ile devam ediyoruz. Bu yazı da Flask ile web uygulama geliştirirken işimizi hızlandıracak ve pratikleştirecek flask da inheritance ve block ifadelerini öğreneceğiz.

Bu ifadeleri Flask ile web uygulaması geliştirirken sıkça kullanacağız. Eğer bir önceki derse bakmadıysanız ilk önce o derse bakmanızı tavsiye ederim. Buradan ulaşabilirsiniz. Inheritance kavramını anlatmadan flask da başka bir ifade olan include ifadesine ilk önce bakalım.

Flask Include

Bir önceki dersimizde biz web sayfamıza navbar kısmını eklemiştik. Kodu olduğu gibi sayfaya eklemiştik. Şimdi başka bir html sayfası yani navbar.html sayfasını ana sayfaya ekleyelim. Bu sayede kodlarımız daha anlaşılır ve okunabilir olacaktır. Bu kavram belki size çok tanıdık geldi. Evet bu kavram html sayfasına; css,js vb. sayfaları html sayfasına eklemek gibidir.

Onun için navbar.html sayfasını oluşturalım.

Genel kullanım şekli;

{% include “sayfa_adi.html” %}

 

Şimdi kodumuzu ekleyelim.

index.html

flask_app.py

Projemizi çalıştıralım.

Ana sayfa

Bu şekilde başka bir html sayfasını  html dosyası içinde kullanmayı da öğrenmiş olduk.

Flask Inheritance

Inheritance Türkçe karşılığı kalıtım veya miras alma olan bu kavram nesne tabanlı programlama(OOP) ile gelen bir kavramdır. Eğer nesne tabanlı programlama mantığını bilmiyorsanız buraya bakabilirsiniz. Python derslerini anlatırken biz inheritance ile sınıfları miras alıyorduk. Burada ise biz html sayfalarını miras alacağız. Bu ifadeyi kullanmamızın sebebi ise artık her sayfa için ayrı kod yazmak yerine biz bir sayfa oluşturup diğer sayfaları bu sayfadan miras alacağız. Böylelikle artık işimizi pratikleştirmiş ve hızlandırmış olacağız.

Inheritance Nasıl Kullanılır?

Kullanımı çok basittir ve genel kullanım şekli şöyledir;

{% extends “miras_alinacak_dosyaAdi.html” %}

Bizde bir örnekle gösterelim. Bunun için ben layout.html sayfasını oluşturacağım ve bütün sayfalarımı bu sayfadan türeteceğim.

layout.html 

Şimdi anasayfa yani index.html sayfamızı oluşturalım ve layout.html sayfasını miras alalım.

index.html 

 

flask_app.py

Şimdi projemizi çalıştıralım

Anasayfa

Bu şekilde diğer sayfaları da layout.html sayfasından türetebiliriz burada fark etmemiz gereken bir şey var. Biz layout.html sayfasından türettik(miras aldık) ama sayfalar tamamen aynı olmayacak örneğin en basiti sayfa ismi farklı olacak.

O zaman yeni bir başlık atalım.

Flask  Block

Blocklar miras aldığımız bir sayfa üzerinde değişiklik yapmak istediğimiz zaman kullanacağımız ifadedir.  Kafanız karıştıysa hiç merak etmeyin örnekle çok daha iyi anlayacaksınız. Hemen hakkımızda sayfası oluşturalım ve bunun için layout.html sayfasını miras alalım.

about.html

Block Nasıl Kullanılır?

Genel yapısı şu şekildedir.

Fark ettiğiniz   gibi layout.html sayfasıyla tamamen aynı şimdi biz bunu değiştirelim. Gördüğünüz gibi hakkımızda sayfasının başlığı da mobilhanem önce onu değiştirelim.

İlk önce miras alacağımız sayfada block oluşturuyoruz.

layout.html

Şimdi değiştirmek istediğimiz sayfada aynı şekilde block oluşturalım.

about.html

Ve projemizi çalıştıralım.

Hakkımızda

Gördüğünüz gibi sayfanın ismini değiştirmiş olduk. Aynı şeyi sayfanın içeriği yani <body></body> elementlleri için de yapalım.

Şimdi about.html sayfamıza block kısmını ekleyelim;

Sayfamızı görüntüleyelim;

Hakkımızda

Böylece Flask block ifadesini de öğrenmiş olduk. Ben ufak bir uygulama yaptım buradan ulaşabilirsiniz. Ayrıca her dersin kodlarını github’a ekleyeceğim.

 

Mobilhanem.com da Python ile  Flask Framework serisinin bu dersinde Flask inheritance ve block dersinin  sonuna geldik. Bir sonraki yazımızda Flask Static Dosya yapısını göreceğiz. Eksik ya da yanlış gördüğünüz ve ya anlamadığınız yerler için çekinmeden ulaşabilirsiniz. Bir sonraki yazıda görüşmek üzere.

Tüm Derslere Buradan Ulaşabilirsiniz.

Cahit İşleyen

Fırat Üniversitesi Yazılım Mühendisliği
Python ve Linux sever.
Çay tiryakisi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?