Takip et

Django ve HTMX ile To-Do Uygulaması: Silme İşlemi ve Testler

Django ve HTMX ile To-Do Uygulaması: Silme İşlemi ve Testler

Merhaba! Bu yazıda, Django ve HTMX ile geliştirdiğimiz To-Do uygulamasının altıncı bölümüne dalıyoruz. Önceki bölümlerde uygulamamızın temel yapısını oluşturduk. Şimdi ise, görev silme işlemini ekleyip, Test Driven Development (TDD) yaklaşımıyla bu işlemi güvence altına alacağız. Bu sayede, uygulamamızın sağlamlığını ve kararlılığını artıracağız.

Öncelikle, silme işleminin nasıl çalışması gerektiğini tasarlayalım. Kullanıcı, her bir görev için bir “Sil” butonuna tıklayarak ilgili görevi silebilmelidir. Bu işlem, sunucu tarafında gerçekleştirilecek ve HTMX sayesinde sayfanın tamamının yeniden yüklenmesine gerek kalmadan, sadece ilgili görev listesinin güncellenmesi sağlanacaktır. Bu yaklaşım, kullanıcı deneyimini önemli ölçüde iyileştirir.

Testlerimizi Yazalım

TDD yaklaşımını benimsediğimiz için, öncelikle silme işlemini test edecek kodları yazacağız. Bu, kodumuzun beklendiği gibi çalışmasını sağlamak için olmazsa olmaz bir adımdır. Testlerimiz, silme işleminin başarılı bir şekilde tamamlanıp tamamlanmadığını, hata durumlarının doğru şekilde yönetilip yönetilmediğini ve veritabanında beklenen değişikliklerin yapılıp yapılmadığını kontrol edecektir.


# tests.py
from django.test import TestCase
from .models import ToDoItem

class ToDoItemDeleteTest(TestCase):
    def test_delete_todo_item(self):
        item = ToDoItem.objects.create(text="Test Görevi")
        item.delete()
        self.assertEqual(ToDoItem.objects.count(), 0)

Bu basit test, bir görev oluşturup sildikten sonra veritabanında hiçbir görevin kalmadığını doğrular. Daha kapsamlı testler yazmak, örneğin hata durumlarını kontrol etmek, her zaman daha iyidir. Bu örnek, temel bir test senaryosunu göstermektedir. Daha gelişmiş testler için Django’nun sunduğu test araçlarını kullanabilirsiniz.

Django Görünümlerini Güncelleyelim

Şimdi, Django görünümlerimizi güncelleyerek silme işlemini uygulayalım. HTMX ile AJAX isteklerini kullanarak sunucuya bir silme isteği göndereceğiz ve geri dönen yanıta göre kullanıcı arayüzünü güncelleyeceğiz.



<ul>
  {% for item in todo_items %}
    <li>{{ item.text }} <a href="{% url 'delete_todo' item.pk %}" hx-post="" hx-swap="innerHTML" hx-target="#todo-list">Sil</a></li>
  {% endfor %}
</ul>

# views.py
from django.shortcuts import render, get_object_or_404
from .models import ToDoItem
from django.http import HttpResponse

def delete_todo(request, pk):
    item = get_object_or_404(ToDoItem, pk=pk)
    item.delete()
    return HttpResponse("")

Yukarıdaki kodda, her görev için bir “Sil” bağlantısı oluşturuyoruz. hx-post, hx-swap ve hx-target öznitelikleri sayesinde HTMX, sunucuya bir POST isteği gönderir ve yanıtı, #todo-list ID’li elemanın içini güncellemek için kullanır. Bu sayede, sayfa yeniden yüklenmeden görev silinmiş olur.

Bu örnek, Django ve HTMX kullanarak görev silme işlemini nasıl uygulayabileceğinizi göstermektedir. Daha gelişmiş özelliklerle, örneğin hata yönetimi ve kullanıcı deneyimini iyileştirecek mesajlar ekleyerek, uygulamanızı daha da geliştirebilirsiniz. Unutmayın ki, TDD yaklaşımı güvenilir ve sağlam bir uygulama geliştirmek için çok önemlidir.

Daha fazla bilgi ve örnek için fatihsoysal.com adresini ziyaret edebilirsiniz. Ayrıca, Django ve HTMX ile ilgili daha fazla kaynağa Django Dokümanları ve HTMX Dokümanları üzerinden ulaşabilirsiniz.

Sonuç

Bu makalede, Django ve HTMX ile To-Do uygulamasında görev silme işlemini TDD yaklaşımıyla nasıl uygulayacağımızı detaylı olarak inceledik. Testlerimiz, kodumuzun doğru çalıştığından emin olmamızı sağlarken, HTMX sayfanın performansını artırdı. Bu süreç, temiz, okunabilir ve test edilebilir kod yazmanın önemini vurgular. Umarım faydalı bulmuşsunuzdur!

#Etiketler: Django, HTMX, To-Do Uygulaması, Silme İşlemi, Testler, TDD, Python, Web Geliştirme


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version