Най-добрият начин да използвате Django - REST API

Снимка Томас от Unsplash

Преди издигането на приложенията за единични страници, приложенията ще предоставят пълен HTML документ с CSS на сървъра, използвайки PHP, Java или друг език, и да използват JavaScript / JQuery и AJAX заявки, за да осигурят специфичен набор от взаимодействия, които потребителят може да има с уеб страницата , Това се справи много добре със системата за шаблони и статични файлове на Django, тъй като Django свърши цялата работа за вас, зареждайки файлове, необходими за конкретен URL адрес.

Но след това дойдоха приложения за единични страници.

Вместо да презареждате всяка страница поради действие като натискане на бутон - и да накарате потребителя да изчака още малко - Приложенията за единични страници позволяват бързо презареждане на скорости между страници с асинхронни HTTP заявки, осигурявайки безпроблемно потребителско изживяване, но с жертва на начално време за зареждане Много от тях са или са в процес на преминаване към използване на Javascript рамки за предния си стек и доста разделят предния от задния. Това по същество прави шаблоните на Django безполезни.

Според мен най-добрият начин да използвате Django за уеб приложения е да го използвате за изграждане на REST API и използване на фронтални рамки - React.js, Angular.js, Ember.js, Vue.js - за визуализация на вашата уеб страница , която може да бъде напълно независима от Django.

REST API

По същество API е интерфейсът, който сървърът / задния център предоставя, така че приложенията да могат да говорят с тях. A REST API е API, който следва набор от правила, наречени REST (Представително състояние Прехвърляне) и крайна точка на API са определени функции на интерфейса.

Да вземем за пример Instagram, който публикува своя API за публика. Така че кажете, че сте искали да знаете информация за потребител 1234567, неговото / нейното име, колко последователи имат, тяхната биография и т.н. Предвид ДОСТЪПЕН TOKEN, който получавате от Instagram, отправяте заявка до крайна точка:

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

След това уеб сървърите на Instagram ще изпълняват определени функции, които включват търсене през тяхната база данни, за да получат този потребител и след това ще върнат този текст, който е във формат JSON:

{
 "данни": {
     „Id“: „1234567“,
     „Потребителско име“: „snoopdogg“,
     „Пълно име“: „Snoop Dogg“,
     „Profile_picture“: „http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg“,
     „Био”: „Това е моето био”,
     „Уебсайт“: „http://snoopdogg.com“,
     „Брои“: {
         „Медия“: 1320,
         „Следва“: 420,
         „Follow_by“: 3410
     }
  }
}

Ако искате повече информация, като техните последователи, ще трябва да направите още едно искане към различен URL адрес, за да получите списък с техните последователи. Има и начини за добавяне на потребители, добавяне на снимки и т.н., ако предоставите някои данни, но зависи от инстаграм дали те искат да позволят на обществото да го направи. Така се създават приложения на трети страни, за да проследявате кой ви е следил. Всъщност мобилните приложения на Instagram извикват един куп от тези функции на API и показват тези данни по много лъскав и бърз начин (всъщност са много увлекателни за това как правят приложението си бързо; CTO на Instagram говори за това тук)

Django REST Framework

Един чудесен и често срещан начин за внедряване на API с Django е чрез използване на Django REST Framework, пакет Django, пълен с мощни, но гъвкави инструменти за изграждане на REST API. Тя ви позволява да сериализирате данните си (превеждате обектите на модела си в този случай - текст), бързо да пишете изгледи / крайни точки и да ги тествате, добавяте удостоверяване и много други.

С това ще можете да отделите своя бек-енд от предния, позволяващ да се разширите с други формати като IOS и Android приложения, без само да се придържате само към уеб приложения. Освен това вашият преден и заден край няма да бъдат интегрирани по много стегнат и сложен начин, което превръща грешки в жив ад. Дори компании като Instagram и Doordash са използвали Django за внедряване на своя API като своя бек-енд услуга, като Instagram използва React.js за разработване на своето уеб приложение.

Това според мен е най-добрият начин да използвате Django.

Повече ресурси

  • Какво е REST?
  • Официална рамка за REST на Django
  • Django REST Framework урок

Ако ви е харесало да го четете, моля, оставете хлопка / коментар! Аз съм доста нов в това и бих искал да се подобря - всеки отговор е добре дошъл :)

Вижте и другите ми публикации!