A Django használatának legjobb módja - REST API

Fotó Thomas az Unsplash-ből

Az egyoldalas alkalmazások megjelenése előtt az alkalmazások teljes HTML-dokumentumot készítenének a CSS-sel a kiszolgálón, PHP, Java vagy más nyelv használatával, és a JavaScript / JQuery és AJAX kéréseket használnák annak érdekében, hogy biztosítsanak egy meghatározott interakciókészletet, amelyet a felhasználó a weboldallal végezhet. . Ez nagyon jól működött a Django sablonrendszerével és statikus fájljaival, mivel a Django az összes munkát érte elvitte, és egy adott URL-hez szükséges fájlokat töltött be.

De aztán jöttek az Egyoldalas alkalmazások.

Az egyes oldalak újratelepítése helyett egy művelet, például egy gomb kattintás miatt - és a felhasználót kissé tovább várva - az egyoldalas alkalmazások lehetővé teszik az aszinkron HTTP-kérelmekkel történő gyors újratöltési sebességet, zökkenőmentes felhasználói élményt biztosítva, de feláldozva kezdeti betöltési idő. Sokan átváltottak a Javascript keretrendszer használatára a front-end veremhez, vagy nagy részben el vannak osztva a front-end a back-end-ről. Ez lényegében használhatatlanná teszi a Django sablonokat.

Véleményem szerint a Django webes alkalmazásokhoz való felhasználásának legjobb módja az, ha REST API-t készít, és előtér-keretrendszereket - React.js, Angular.js, Ember.js, Vue.js - használ weboldalának megjelenítésére. , amely teljesen független lehet Djangótól.

REST API-k

Alapvetően egy API az a felület, amelyet a kiszolgáló / háttér nyújt, hogy az alkalmazások beszélhessenek velük. A REST API olyan API, amely REST (reprezentációs állapotátvitel) elnevezésű szabálykészletet követ, és az API végpontja az interfész bizonyos funkciói.

Vegyünk például egy Instagram-t, aki közzétette API-ját a nyilvánosság számára. Tehát mondja, hogy szeretne tudni a 1234567 felhasználóról, a nevéről, hány követőjéről, életrajzairól stb., Tudni kívánt. Mivel az INGYENES TOKEN-t, amelyet Instagramból kapsz, kérdezel egy végponthoz:

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

Az Instagram webszerverek ezt követően bizonyos funkciókat hajtanak végre, beleértve az adatbázisukon keresztüli keresést, hogy megszerezzék a felhasználót, majd visszaadják ezt a JSON formátumú szöveget:

{
 „Adatok”: {
     „Id”: „1234567”,
     “Felhasználónév”: “snoopdogg”,
     “Teljes_név”: “Snoop Dogg”,
     „Profil_kép”: „http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg”,
     „Bio”: „ez az én életem”,
     „Weboldal”: „http://snoopdogg.com”,
     „Számít”: {
         „Média”: 1320,
         „Követi”: 420,
         „Follow_by”: 3410
     }
  }
}

Ha további információkat szeretne, mint például követőik, akkor további kérést kell benyújtania egy másik URL-re, hogy megkapja a követői listáját. Vannak módok is a felhasználók felvételére, fényképek hozzáadására stb., Ha valamilyen adatot szolgáltatnak, de az instagram feladata, hogy engedélyezze-e a nyilvánosság számára ezt. Így jönnek létre a harmadik felek alkalmazásai annak nyomon követésére, akik követtek téged. Valójában az Instagram mobil alkalmazásai felhívják az API-funkciók egy csomóját, és ezeket az adatokat nagyon karcsú és gyors módon jelenítik meg (valójában nagyon lenyűgöző az, hogy hogyan gyorsítják alkalmazásukat; az Instagram CTO-ja itt beszél)

Django REST Framework

Az API nagyszerű és általános módja a Django alkalmazásával a Django REST Framework használata, egy Django csomag, amely erőteljes, de rugalmas eszközökkel van felszerelve a REST API felépítéséhez. Ez lehetővé teszi az adatok sorba rendezését (a modellobjektumok lefordítását - ebben az esetben a szöveget), gyors nézeteket / végpontokat írni és tesztelni, hitelesítést hozzáadni és még sok minden mást.

Ezzel képes lesz elválasztani a háttérképet a kezelőfelülettől, lehetővé téve más formátumok, például IOS és Android alkalmazások bővítését anélkül, hogy ragaszkodni kellene a webes alkalmazásokhoz. Ezenkívül a front- és a back-end nem lesz integrálva nagyon szűk és összetett módon, ami a hibakeresést élő pokollá teszi. Még az olyan társaságok, mint az Instagram és a Doordash, a Djangot használják API-jának háttér-szolgáltatásként történő megvalósításához, az Instagram pedig a React.js segítségével webes alkalmazásuk fejlesztéséhez.

Véleményem szerint ez a legjobb módszer a Django használatához.

További források

  • Mi a REST?
  • Hivatalos Django REST keretrendszer
  • Django REST Framework bemutató

Ha élvezte az olvasást, kérlek, hagyj egy tapsot / megjegyzést! Nagyon új vagyok ebben, és szeretnék jobb lenni - bármilyen válasz örvendetes :)

Nézd meg a többi hozzászólásomat is!