Web konusunda kafam çok karışık [javaScript Django]

Öncelikle merhabalar ben hem frontend hem backend konusunda bilgi sahibi olmak isteyen biriym. Daha yeni başladım ama kafamı karıştıran bir olay var. Ben frontend için html css backende de django ile ilerliyorum ama javascript çok kafamı karıştırıyor. Mesela makale ekleme silme işlemleri için site de göstermek vesayre için django yeterli oluyor iyi bir görnüş için css bootrstrap kullanıyorum ama aynı işlemi javascriptle de yapabliyorum mesela todo list bunu dom işemleriyle yapabiliyorum, biliyorum veritabanına yüklenmiyor bilgiler ama ben todo işlemini django ile de site de gösterebiliyorum javascriptle de ,neden javascriptle yapmalıyım veya neden djangoyla yapmalıyım? İnşallah anlatabilmişimdir kafamın karıştığı noktayı kısacası sorum şu javascriptle modeli yapıp sadece veri tabanı için mi django kullanmalıyım ama djangoyla hem site de gösterip hem de veri tabanına kaydedebiliyorum… :slight_smile: kafam çok karışık yanıtlarsanız sevinirim

Javascript’in işlevi sadece DOM manipülasyonu değil. Javascript ile daha aktif sayfalar yapılabilir. Websocket, AJAX gibi teknolojilerle sayfayı yenilemeden sunucu ile iletişime geçilir. Örneğin bir bildirim geldiğinde kullanıcı hemen haberdar edilebilir, çünkü arkaplanda belirli aralıklarla javascript yardımı ile sunucuya bağlanıp bildirimler alınıyordur. Yazbel gibi.

Bunların dışında geçişli slaytlar, basit oyunlar, kullanıcı-sayfa etkileşimi gibi şeyler yapabilmek için javascript gerekli. Her zaman javascript kullanılacak diye bir şey yok. İhtiyaçları ortaya koyarsınız, javascript gerekiyor mu diye bakarsınız ve gerekiyorsa kullanırsınız.

1 Beğeni

Ya örnek üzerinden javascriptle(framework farketrmez) djangonun bir arada kullanıldığı bir web uygulamasını anlatabilir misiniz . Bunu yaparken javascript bunları veritabına kaydederken django tarzı

Javascript veritabanına kayıt aşamasında olmak zorunda değil, hatta hiç böyle bir amacı yok.

Kendi django projem örnek olarak, paketleri anlık olarak ekranda gösteriyor.

Bu daha profesyonel, ekşi sözlük klonu
http://sozluk.me/

2 Beğeni

Django sayfa üzerinde bir işlem yapmaz. Sadece serverda sayfayı oluşturur. (Nasıl yapıldığını bilmeden yazıyorum) Yazbel forumuna bakarsak navbar, başlık, kategoriler, etiketler vb. şeyler Django tarafından oluşturuluyor. 1 defa oluşturuluyor ve kullanıcıya yolluyor, başka hiçbir işlem yapmıyor.

Javascript ise tarayıcı üzerinde çalışır. Site kullanıcıya ulaştıktan sonra bütün işlemler js tarafından yapılır. Mesela cevap yazarken gözüken önizleme js tarafından hazırlanıyor veya bir sayaç yazdıysanız sayacın azalması js tarafından gerçekleştiriliyor.

Sizin kafanızı karıştıran konulardan biri de veritabanı işlemleri sanıyorum. Veritabanı işlemleri sadece serverda gerçekleştirilebilir. Serverda da Django çalıştığına göre sadece Django yapabiliyor. Javascript bu konuda sadece Django’ya haber vermekle yükümlü. Bu iş için daha önce karar verilmiş yöntemler var. @coderistan yazmış:

Bu teknolojiler kullanıcı görmeden servera yapılan bağlantılarla gerçekleştirilir. Websocket için server tarafında view gibi consumer yazarak gelen isteklere nasıl cevap verileceğine yine biz karar veriyoruz. Django’da websocket kullanımı için “Django-channels” isimli kütüphaneyi araştırabilirsiniz. Bunun yerine Rest api de kullanabilirsiniz.(Bu bilgiler şu an için size biraz fazla olabilir ama dursun burada)

Ben Django’da template kullanarak sayfa oluşturmanızı önermiyorum. Onun yerine bir frontend frameworkü kullanmanızı öneririm. Tabi ki frontend frameworkü öğrenene kadar kullanılabilir. Ancak bir frontend frameworkü öğrendikten sonra aslında bir eziyet olduğunu siz de anlayacaksınız.

1 Beğeni

hocam merhaba, uzun zaman geçmiş ama yine de neden böyle yazdığınızı sormak istedim. mesela react öğrendim diyelim, template kullanmaktan daha mı mantıklı olacak bunu mu kast ettiniz? ve eğer öyleyse sebebi nedir açıklarsanız çok memnun olurum.

Hocam çok uzun zaman geçmiş gerçekten. Ne zaman yazdığımı hatırlamıyorum ama neden yazdığımı hatırlıyorum.

Django templateleri dinamik sayfalar oluşturmak için pek doğru bir araç değil. Sayfa kullanıcıya gönderildikten sonra hantal kalıyor.

React nasıl çalışıyor bilmiyorum. Ben Vue kullandıktan sonra bu yazıyı yazmıştım. Vue’da çalışırken html ve css bağlantısını kurmak çok kolaydı. Elementlere fonksiyon eklemek daha kolaydı. Vue’da tek sayfa uygulaması tasarlıyordum. En önemli özelliği de Vue, sanal DOM oluşturarak sayfadaki değişikliklerin yapılmasını aşırı hızlandırmıştı.

Vue, React veya herhangi başka bir framework kullanmak kesinlikle template kullanmaktan daha mantıklıdır.

1 Beğeni

O her zaman yapilacak web uygulamasina gore degisiyor aslinda.

Sayfada React/Svelte kullanarak html/js’e gore cok daha rahat halledebilecegim dinamik ogeler varsa, kullanmam gereken npm kutuphaneleri varsa veya farkli clientlar ureteceksem genelde React/Svelte, ve fastapi kullanirim. Bunun disindaki durumlarda Django tumuyle guzel ve yeterli.

Hocam MySql bağlantısı için AJAX/Javascript kullanılabilir mi ve bu güvenlik konusunda nasıl bir tercih olur?

MySQL bağlantısı için bir sürücü lazım. Sonra bu sürücüyü yönetebilecek bir kütüphane yüklemeniz gerekiyor. Javascript ile nodejs kullanarak bir backend servisi geliştirebilirsiniz, böylece MySQL bağlantısı için gerekli kütüphaneyi yükleyebilirsiniz.

AJAX bambaşka bir teknoloji, yani MySQL bağlantısı sağlamak gibi bir yeteneği yok en azından bunun için geliştirilmedi. nodejs ile geliştirdiğiniz servisi yayına aldığınızda, sayfayı yenilemeden bu servisle iletişime geçmek için AJAX kullanabilirsiniz. Gibi gibi.

1 Beğeni

Bu cümleden kastınız ne hocam, nasıl bir kütüphane? Kütüphanenin ismi nedir?

Hocam anladığım kadarıyla Node.js’e iyice göz atmam gerekecek.

evet hocam nodejs ile ilgili araştırmalarınıza devam edin. sorularınızın cevapları genelde dökümanlarda yer alıyor. sadece sabırla okumak lazım.

1 Beğeni