2461

Python Django ile Sıfırdan İleri Seviye Web Geliştirme

Partial View Templates

Django ile web geliştirme dersleri serimizin bu bölümünde django ile partial view-template neden kullanılır ve nasıl oluşturulur, öğrenelim.

Bir önceki derste django projemize bootstrap kütüphanesini ekledik ve bazı component' leri de template dosyalarında kullandık ancak bir bütünü oluşturan parçaların (component) hepsini bir html sayfasına eklemek işleri karıştırabilir dolayısıyla bütünü oluşturan her bir parça için ayrı bir html dosyası (partial view) eklemek bizi karışıklıktan kurtarır. Örneğin; _navbar.html ya da _cateegories.html isminde partial view template dosyaları ekleyebiliriz.

Django Partial View Templates

 

Django partial view template dosyalarını ister projeye özel olan templates klasörüne isterseniz de uygulamaya özel olan templates klasörüne ekleyebilirsiniz. Önemli olan proje boyunca tüm django uygulamasına mı hizmet edecek yoksa sadece tek bir django uygulamasına mı hizmet edecek bu önemli.

_navbar.html dosyasını blogapp/templates/partials dizinine ekleyiniz. 

base.html 'deki navbar component tanımlamasını _navbar.html dosyasına taşıyınız.

base.html dosyasına _navbar.html dosyasını include komutu ile dahil ediniz. 

_navbar.html

<nav class="navbar navbar-dark bg-primary navbar-expand-lg ">
    <div class="container">
        <a class="navbar-brand" href="#">Blogapp</a>
        <ul class="navbar-nav me-auto">
            <li class="nav-item">
                <a class="nav-link" href="#">Home</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Blogs</a>
            </li>
        </ul>              
        </div>
    </div>
</nav>

base.html

<body>
    {% include 'partials/_navbar.html' %}

    {% block content %}{% endblock %}

    <script src="{% static 'js/bootstrap.min.js' %}"></script>
    {% block js_files %} {% endblock %}
</body>

artık base.html dosyamızda navbar component tanımlamaları ayrı bi dosyadan sayfamıza dahil edildi. Dolayısıyla base.html dosyamız daha sade hale getirildi.

django partial views

_navbar.html django projesindeki tüm django uygulamalarını ilgilendirdiğinden dolayı dosyayı blogapp/templates/partials klasörüne ekledim.

Ancak index.html sayfasındaki kategoriler sadece blog uygulamasını ilgilendirdiği için _categories.html sayfasını blogapp/blog/templates/partials klasörüne ekleyeceğim.

_categories.html

<div class="list-group">
    <a href="#" class="list-group-item list-group-item-action active"> Web Geliştirme </a>
    <a href="#" class="list-group-item list-group-item-action">Mobile Uygulama</a>
    <a href="#" class="list-group-item list-group-item-action">Veri Analizi</a>              
</div>

index.html

{% block content %}
<div class="container mt-3">
    <div class="row">
        <div class="col-3">
            {% include 'blog/partials/_categories.html' %}
        </div>
        <div class="col-9">
            Blog Listesi            
        </div>
    </div>
</div>
{% endblock %}

django partial views

Django projelerinde bir bütünü oluşturan parçaları ayrı dosyalara (partial view templates) alarak karışıklıktan uzak bir uygulama geliştirebiliriz.