Template Inheritance, Blocks

Kategori: Python / Flask , 17 Eylül 2019 , JanFranco


HTML sayfalarımızda inheritance ve overriding özelliklerini kullanabiliriz. İlk olarak ana dosyamızda index fonksiyonunu aşağıdaki şekilde güncelleyelim:


@app.route("/")
def index():
    return render_template("index.html")
templates klasöründe layout.html adında bir dosya açalım ve içeriğini aşağıdaki şekilde güncelleyelim:


<!DOCTYPE html>
<html>
    <head>
        <title>Ana Sayfa</title>
    </head>
    <body>
        <h1>Ana Sayfa</h3>
        {% block janfranco %}
            <p>This block belongs to layout.html</p>
        {% endblock janfranco %}
    </body>
</html>
Burada block anahtar kelimesi ile özel bir yer oluşturduk. Eğer müdahale edilmezse, bu blok override edilmezse bloğun içeriği değişmeyecek. Şimdilik bu kısmı görmezden gelelim ve index.html içeriğini aşağıdaki şekilde güncelleyelim:


{% extends "layout.html" %}
Burada extends anahtar kelimesi ile layout.html dosyasını miras aldık. Ana dosyamızı çalıştırdığımızda, ana sayfanın içeriği şu şekilde olur:


Ana Sayfa
This block belongs to layout.html
Şimdi index.html dosyasında janfranco bloğunu override edelim. index.html dosyamızın son hali aşağıdaki gibi olsun:


{% extends "layout.html" %}

{% block janfranco %}
    <p>This block belongs to index.html</p>
{% endblock janfranco %}
Burada layout.html dosyasındaki janfranco bloğunu tekrar tanımladık. Bu durumda ana sayfamız aşağıdaki gibi olur:


Ana Sayfa
This block belongs to index.html


Sonraki Yazı: Creating Navbar with Bootstrap
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın