Kas tai yra?
Django yra aukšto lygio Python žiniatinklio infrastruktūra, leidžianti greitai sukurti saugias ir palaikomas svetaines. Patyrusių kūrėjų sukurtas Django rūpinasi daugeliu žiniatinklio kūrimo problemų. Taigi galite sutelkti dėmesį į paraiškos rašymą, neišradę dviračio iš naujo. Tai atvirojo kodo, klesti ir aktyvi bendruomenė, puiki dokumentacija ir daugybė visų rūšių paramos galimybių.
Django padeda rašyti programinę įrangą, kuri:
Viskas įtraukta
„Django“ laikosi „įtrauktos baterijos“ filosofijos ir pateikia beveik viską, ką kūrėjai gali norėti padaryti „iš dėžutės“. Kadangi viskas, ko jums reikia, yra vieno „produkto“ dalis, viskas veikia be problemų. Vadovaujasi nuosekliais projektavimo principais, yra plečiama ir naujausia dokumentacija.
Lankstus
„Django“ gali būti naudojamas kuriant beveik bet kokio tipo svetaines – nuo turinio valdymo sistemų ir wiki iki socialinių tinklų ir naujienų svetainių. Jis gali veikti su bet kuria kliento platforma ir gali pateikti turinį beveik bet kokiu formatu (įskaitant HTML, RSS informacijos santraukas, JSON, XML ir pan.). Svetainė, kurią šiuo metu skaitote, yra pagrįsta šia infrastruktūra!
Užpildymas suteikia galimybę pasirinkti beveik visas funkcijas, kurių tik norite (pavyzdžiui, kelios populiarios duomenų bazės, šablonų varikliai ir pan.). Jei reikia, jį taip pat galima išplėsti ir naudoti kitus komponentus.
Saugus
„Django“ padeda kūrėjams išvengti daugelio įprastų saugumo klaidų, suteikdama infrastruktūrą, sukurtą „tinkamam sprendimui“ automatiškai apsaugoti svetainę. Pavyzdžiui, ši suteikia saugų būdą valdyti vartotojų paskyras ir slaptažodžius. Įprastų klaidų vengimas. Pavyzdžiui, seanso informacijos įtraukimas į slapukus, kai jie pažeidžiami (vietoj to, slapukuose yra tik raktas ir tikrieji duomenys, saugomi duomenų bazėje). Arba slaptažodžių saugojimas paprastu tekstu, o ne maišos.
Slaptažodžio maiša – fiksuoto ilgio reikšmė, sukurta apdorojant slaptažodį naudojant kriptografinę maišos funkciją. „Django“ gali patikrinti įvesto slaptažodžio teisingumą perleisdamas jį per maišos funkciją ir palygindamas išvestį su saugoma maišos reikšme. Dėl „vienpusio“ funkcijos pobūdžio. Net jei saugoma maišos reikšmė pažeista, užpuolikui bus sunku išgauti pradinį slaptažodį.
Django suteikia apsaugą nuo daugelio numatytųjų spragų. Įskaitant SQL įterpimą, scenarijų kūrimą keliose svetainėse, užklausų klastojimą įvairiose svetainėse ir paspaudimų užgrobimą (daugiau informacijos apie šias atakas žr. Svetainės sauga).
Mastelio keitimas
„Django“ naudoja komponentais pagrįstą „nieko bendro naudojimo“ architektūrą (kiekviena architektūros dalis yra nepriklausoma nuo kitų, todėl prireikus gali būti pakeista arba pakeista). Aiškus skirtingų dalių atskyrimas reiškia, kad jis gali padidinti srautą pridedant bet kokio lygio aparatinę įrangą. Talpyklos serveriai, duomenų bazių serveriai arba taikomųjų programų serveriai. „Instagram“ mastelis Kai kurios dažniausiai lankomos svetainės sėkmingai pritaikytos „Django“. Kad atitiktų jos reikalavimus (pavyzdžiui, „Instagram“ ir „Disqus“ – tik du).
Patogu palydėti
Django kodas – parašytas naudojant projektavimo principus ir šablonus, skatinančius kurti prižiūrimą ir daugkartinį kodą. Visų pirma, jame naudojamas principas „Nekartokite savęs“ (DRY). Taigi nėra nereikalingo dubliavimosi, o tai sumažina kodo kiekį. Taip pat skatina susijusių funkcijų grupavimą į daugkartinio naudojimo „programas“. Ir žemesniame lygyje sugrupuoja susijusį modulių kodą pagal modelio peržiūros valdiklio (MVC) modelį.
Nešiojami
Django parašyta Python, kuri veikia daugelyje platformų. Tai reiškia, kad nesate susieti su jokia konkrečia serverio platforma ir galite paleisti programas daugelyje „Linux“, „Windows“ ir „Mac OS X“ variantų. Be to, „Django“ – gerai palaiko daugelis žiniatinklio prieglobos paslaugų teikėjų, kurie dažnai teikia tam tikrą „Django“ prieglobos infrastruktūrą ir dokumentus. svetaines.
Populiarus
Nėra pasiekiamų ir galutinių serverių sistemų populiarumo įvertinimų (nors tokios svetainės kaip „Hot Framework“ bando įvertinti populiarumą naudodamos tokius mechanizmus kaip „GitHub“ projektų skaičiaus skaičiavimas ir „StackOverflow“ klausimai kiekvienai platformai). Geriausias klausimas yra, ar „Django“ yra pakankamai populiarus, kad išvengtų nepopuliarių platformų problemų. Ar jis toliau vystosi? Ar galite gauti pagalbos, jei jos reikia? Ar turite galimybę gauti apmokamą darbą, jei studijuojate Django?
Remdamiesi didelių svetainių, kuriose naudojamas „Django“, skaičiumi, bendraautorių skaičiumi ir visokį palaikymą teikiančių žmonių skaičiumi, galime manyti, kad „Django“ yra populiari sistema.
Django – naudojamas tokiose pagrindinėse svetainėse kaip Disqus, Instagram, Knight Foundation, MacArthur Foundation, Mozilla, National Geographic, Open Knowledge Foundation, Pinterest ir Open Stack
Ar ši sitema yra savarankiškas?
Žiniatinklio sistemos dažnai gali būti skirstomos į „užsispyrusias“ ir „neužsispyrusias“.
Užsispyrusios sistemos yra tos, kurios turi nuomonę apie „teisingą būdą“ išspręsti konkrečią užduotį. Jie dažnai palaiko spartų vystymąsi tam tikroje srityje (sprendžiant tam tikro tipo problemas). Nes teisingas būdas ką nors padaryti paprastai yra gerai suprantamas ir gerai dokumentuotas. Tačiau jie gali būti mažiau lankstūs spręsdami problemas už savo pagrindinės srities ribų. Ir, kaip taisyklė, siūlo mažiau galimybių, kokius komponentus ir metodus jie gali naudoti.
Priešingai, netiesioginės sistemos turi daug mažiau apribojimų, kaip geriausiai suklijuoti komponentus, kad būtų pasiektas tikslas, arba net kokius komponentus reikėtų naudoti. Jie leidžia kūrėjams lengviau naudoti tinkamiausius įrankius konkrečiai užduočiai atlikti. Nors ir dėl to, kad šiuos komponentus reikia susirasti patiems.
Django yra „šiek tiek užsispyręs“, todėl suteikia „geriausią iš abiejų pasaulių“. Jame pateikiamas komponentų rinkinys, skirtas daugumai žiniatinklio kūrimo užduočių atlikti. Ir vienas (ar du) pageidaujami jų naudojimo būdai. Tačiau ši „Django“ architektūra reiškia, kad dažniausiai galima rinktis iš kelių skirtingų variantų arba, jei reikia, pridėti palaikymą visiškai naujiems.
Ką dar daryti?
Django taip pat pateikia keletą kitų dalykų:
- Formos: HTML formos naudojamos rinkti vartotojo duomenis, kad būtų galima juos apdoroti serveryje. „Django“ leidžia lengvai sukurti, patvirtinti ir apdoroti formą.
- Vartotojo autentifikavimas ir leidimai. „Django“ apima patikimą vartotojo autentifikavimo ir autorizacijos sistemą, kuri buvo sukurta atsižvelgiant į saugumą.
- Talpykla: dinaminio turinio kūrimas yra daug intensyvesnis (ir lėtesnis) nei statinio turinio teikimas. „Django“ suteikia lanksčią talpyklą, kad galėtumėte išsaugoti visą rodomą puslapį arba jo dalį, kad nebūtų iškviesta dar kartą, nebent tai būtina.
- Administratoriaus skydelis: Django administratoriaus skydelis – įjungtas pagal numatytuosius nustatymus kuriant programą naudojant pagrindinę sistemą. Tai leidžia svetainės administratoriams lengviau valdyti administratoriaus skydelį ir kurti, redaguoti ir peržiūrėti bet kokius jūsų svetainės duomenis.
- Duomenų serializavimas: „Django“ palengvina duomenų nuoseklumą ir priežiūrą tokiais formatais kaip XML arba JSON. Tai gali būti naudinga kuriant žiniatinklio paslaugas (svetaines, kurios išskirtinai tarnauja kitų programų ar svetainių duomenims naudoti ir pačios nieko nerodo) arba kuriant svetainę, kurioje kliento kodas apdoroja visus duomenis.