Django kullanmanın en iyi yolu - REST API

Unsplash'tan Thomas

Tek Sayfa Uygulamalarının yükselmesinden önce, uygulamalar PHP, Java veya başka bir dil kullanarak sunucuda CSS ile tam bir HTML belgesi oluşturacak ve bir kullanıcının web sayfasıyla ilgili belirli bir etkileşim kümesi sağlamak için JavaScript / JQuery ve AJAX isteklerini kullanacaktır. . Bu, Django’nun şablonlama sistemi ve statik dosyalarıyla çok iyi çalıştı, çünkü Django sizin için tüm işleri yaptı, belirli bir URL için gereken dosyaları yüklüyordu.

Ancak daha sonra Tek Sayfa Uygulamaları geldi.

Düğme tıklama gibi bir işlem nedeniyle her sayfayı yeniden yüklemek yerine ve kullanıcının biraz daha beklemesini sağlamak - Tek Sayfa Uygulamaları, eşzamansız HTTP isteklerine sahip sayfalar arasında kesintisiz yeniden yükleme hızları sağlar, kesintisiz bir kullanıcı deneyimi sunar, ancak ilk yükleme süresi Birçoğu, Javascript çerçevelerini ön uç yığınları için kullanmaya geçiyor ve ön ucu arka uçtan hemen hemen ayırıyor. Bu aslında Django şablonlarını işe yaramaz hale getirir.

Bence, Django'yu web uygulamaları için kullanmanın en iyi yolu, onu bir REST API oluşturmak ve ön uç çerçeveler kullanmak - React.js, Angular.js, Ember.js, Vue.js - web sayfanızı oluşturmaktır. , Django'dan tamamen bağımsız olabilir.

REST API'leri

Temel olarak, bir API, sunucuların / arka uçların sağladığı arayüzdür, böylece uygulamalar onlarla konuşabilir. REST API, REST (Temsilsel Durum Aktarımı) adı verilen bir dizi kuralın izlendiği bir API'dir ve bir API bitiş noktası, arabirimin belirli işlevleridir.

API’sını halka yayınlayan bir örnek için Instagram’a bakalım. Öyleyse 1234567 kullanıcısı, adı, kaç takipçisi, biyografisi, vb. İle ilgili bilgileri bilmek istediğinizi söyleyin.

https://api.instagram.com/v1/users/12345678/?access_token=ACCESS-TOKEN

Instagram web sunucuları daha sonra bu kullanıcıyı elde etmek için veritabanlarında arama yapmayı da içeren belirli işlevleri yerine getirecek ve daha sonra JSON formatında olan bu metni döndürecektir:

{
 “Veri”: {
     “Kimlik”: “1234567”,
     “Kullanıcı adı”: “snoopdogg”,
     “Full_name”: “Snoop Dogg”,
     “Profile_picture”: "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
     “Biyo”: “Bu benim biyografım”,
     “Web sitesi”: “http://snoopdogg.com",
     “Sayar”: {
         “Medya”: 1320,
         “İzler”: 420,
         “Followed_by”: 3410
     }
  }
}

Onların takipçileri gibi daha fazla bilgi istiyorsanız, onların takipçilerinin bir listesini almak için farklı bir URL'ye başka bir talepte bulunmanız gerekir. Bazı veriler sağlarsanız, kullanıcı eklemenin, fotoğraf eklemenin vb. Yolları da vardır, ancak halkın bunu yapmasına izin vermek isteyip istemediklerini instagrama bırakmıştır. Bu, sizi takip etmeyenleri takip etmek için 3. taraf uygulamalarının nasıl oluşturulduğunu açıklar. Aslında, Instagram’ın mobil uygulamaları bu API işlevlerinin bir demetini çağırıyor ve bu verileri çok şık ve hızlı bir şekilde görüntülüyor (uygulamalarını nasıl hızlı yaptıkları çok etkileyici, Instagram’ın CTO’su burada konuşuyor.

Django REST Çerçevesi

Bir API'yi Django ile uygulamanın en yaygın ve yaygın yollarından biri, bir REST API oluşturmak için güçlü ama esnek araçlarla dolu bir Django paketi olan Django REST Çerçevesini kullanmaktır. Verilerinizi seri hale getirmenize (model nesnelerinizi - bu durumda, metne çevirmenize), görünüm / bitiş noktalarını hızlı bir şekilde yazmanıza ve test etmenize, kimlik doğrulama eklemenize ve daha pek çok şeye olanak sağlar.

Bu sayede, sadece web uygulamalarına bağlı kalmadan IOS ve Android uygulamaları gibi diğer formatlarla genişleyebilmenizi sağlayan arka ucunuzu ön uçtan ayırabilirsiniz. Buna ek olarak, ön uç ve arka uç, hata ayıklamayı canlı bir cehenneme çeviren çok dar ve karmaşık bir şekilde birleştirilmeyecektir. Instagram ve Doordash gibi şirketler bile API'lerini arka uç hizmetleri olarak uygulamak için Django'yu kullandılar, Instagram web uygulamalarını geliştirmek için React.js kullandı.

Bu, benim görüşüme göre, Django kullanmanın en iyi yoludur.

Daha fazla kaynak

  • REST nedir?
  • Resmi Django REST Çerçevesi
  • Django REST Çerçeve eğitimi

Eğer okumaktan zevk alıyorsanız, lütfen bir alkış / yorum bırakın! Bu konuda oldukça yeniyim ve daha iyi olmak istiyorum - herhangi bir yanıtı bekliyoruz :)

Ayrıca diğer yayınlarıma da göz atın!