Djangon opastusohjelma: Ominaisuudet, Architecture & History

โšก ร„lykรคs yhteenveto

Django on ilmainen, avoimen lรคhdekoodin Python model-view-template-mallille rakennettu verkkokehys, joka mahdollistaa turvallisten, skaalautuvien ja tietokantapohjaisten verkkosivustojen nopean kehittรคmisen uudelleenkรคytettรคvien komponenttien, automaattisen hallintakรคyttรถliittymรคn ja paristokรคyttรถisen suunnittelun avulla.

  • ๐Ÿ”˜ Framework: Django on korkean tason Python kehys monimutkaisten, tietokantapohjaisten web-sovellusten nopeaan rakentamiseen.
  • โ˜‘๏ธ Archirakenne: Model-view-template (MVT) -mallin avulla Django voi hallita ohjainta ja erottaa datan, logiikan ja esityksen.
  • โœ… Mukana paristot: Sisรครคnrakennetut hallintaominaisuudet, todennus, lomakkeet ja kansainvรคlistรคminen poistavat suurimman osan toistuvasta asennustyรถstรค.
  • ๐Ÿ› ๏ธ Turvallisuus: Oletusarvoiset suojausmenetelmรคt estรคvรคt CSRF-hyรถkkรคykset, sivustojenvรคliset komentosarjahyรถkkรคykset, SQL-injektiohyรถkkรคykset ja klikkikaappaushyรถkkรคykset.
  • ๐Ÿงช asteikko: Instagram, Pinterest, Mozilla ja Disqus luottavat Djangoon erittรคin suuren liikenteen palvelemisessa.
  • ๐Ÿค– Tekoรคly: Django tarjoaa koneoppimismalleja API-rajapintoina, ja assistentit, kuten GitHub Copilot, nopeuttavat taustakoodausta.

Djangon opetusohjelma aloittelijoille

Django pyรถrittรครค joitakin verkon suurimmista sivustoista samalla kun seping jokapรคivรคistรค kehitystรค nopeaa ja jรคrjestelmรคllistรค. Ennen kuin tutustumme sen ominaisuuksiin, arkkitehtuuriin ja historiaan, alla olevat osiot alkavat web-kehysten perusteilla ja sillรค, mikรค tekee Djangon ainutlaatuiseksi.

Django opetusohjelman yhteenveto

Tรคmรค Djangon tutoriaali kattaa kaikki perusaiheet alusta alkaen. Tรคssรค tutoriaalissa opit kรคsitteitรค, kuten mitรค Django on, sen historian, ominaisuudet, Django-kehyksen ominaisuudet, Djangon komponentit, sen edut ja haitat sekรค paljon muuta.

Ennen kuin opiskelemme Djangoa, ymmรคrretรครคn:

Mikรค on Web Framework?

Verkkokehys on koodikirjasto, jonka avulla voit rakentaa joustavan, skaalautuvan ja yllรคpidettรคvรคn dynaamisen verkkosivuston, verkkosovelluksen tai verkkopalvelun. Erilaisia โ€‹โ€‹verkkokehyksiรค ovat Zend for PHP, Ruby on Rails Rubylle ja muille.

Mikรค on Django?

Django on web-kehityskehys Python joka tarjoaa standardimenetelmiรค nopeaan ja tehokkaaseen verkkosivustojen kehittรคmiseen. Tรคmรคn korkean tason verkkokehyksen ensisijainen tavoite on luoda monimutkaisia โ€‹โ€‹tietokantapohjaisia โ€‹โ€‹verkkosivustoja. Se auttaa sinua rakentamaan ja yllรคpitรคmรครคn laadukkaita verkkosovelluksia. Sen avulla voit tehdรค kehitysprosessista sujuvan ja aikaa sรครคstรคvรคn nopeaa kehitystรค varten.

Miksi Django? Djangon tรคrkeimmรคt edut

Tรคssรค ovat Djangon tรคrkeimmรคt edut:

  • Djangon asentaminen ja kรคyttรถ on helppoa. Se tarjoaa useita vaihtoehtoja aloittamiseen.
  • Se tarjoaa kรคyttรถvalmiin kรคyttรถliittymรคn hallinnollisiin aktiviteetteihin.
  • Se mahdollistaa monikieliset verkkosivustot sisรครคnrakennetun kansainvรคlistymisjรคrjestelmรคnsรค avulla.
  • Se auttaa sinua vastaamaan valtaviin liikennetarpeisiin nopeasti.
  • Djangoa kรคytetรครคn kaikenlaisten sisรคllรถnhallintajรคrjestelmien, sosiaalisten verkostojen sekรค tieteellisten laskentaympรคristรถjen rakentamiseen.
  • Django auttaa sinua tarjoamaan sovellustestausta kokonaisvaltaisesti.
  • Se auttaa sinua dokumentoimaan API:si HTML-tulosteen avulla.
  • REST-kehys tukee laajasti useita todennusprotokollia.
  • Se tarjoaa kรคyttรถoikeuksia ja rajoituskรคytรคntรถjรค.
  • Sitรค kรคytetรครคn laajalti nopeuden rajoittamiseen yhdeltรค kรคyttรคjรคltรค tuleviin API-pyyntรถihin.

Djangon historia

Vuosi Virstanpylvรคs
2003 Adrian Holovaty ja Simon Willison aloittivat projektin sisรคisenรค projektina Lawrence Journal-World -sanomalehdessรค.
heinรคkuu 2005 Se julkaistiin heinรคkuussa 2005 nimellรค โ€Djangoโ€, ja se nimettiin jazzkitaristi Django Reinhardtin mukaan.
kesรคkuu 2008 Django-ohjelmistoksi ilmoitettiin Foundation (DSF) yllรคpitรคisi Djangoa.
29 heinรคkuu 2009 Django 1.1 julkaistiin ominaisuuksilla, kuten aggregaatit ja tapahtumapohjaiset testit.
17 toukokuuta 2010 Django 1.2 julkaistiin. Pรคivitys tarjosi ominaisuuksia, kuten useita tietokantoja ja sรคhkรถpostin taustajรคrjestelmรคn, sekรค parannuksia istuntoihin ja evรคsteisiin.
23 2011 ti Versiossa 1.3 esiteltiin ominaisuuksia, kuten luokkapohjaiset nรคkymรคt ja staattiset tiedostot.
23 2012 ti Versio 1.4 julkaistiin uusilla ominaisuuksilla, kuten aikavyรถhykkeillรค ja selaimessa tapahtuvalla testauksella.
26 Helmikuu 2013 1.5-versiossa oli mukana Python 3 tukea ja konfiguroitavia kรคyttรคjรคmallin ominaisuuksia.
6 marraskuu 2013 Versiossa 1.6 oli tietokannan tapahtumien hallinta ja yhteyksien yhdistรคmisominaisuudet.
2 syyskuu 2014 Versiossa 1.7 oli uusia ominaisuuksia, kuten sovellusten lataus, migraatiot ja konfigurointi.
1 Huhtikuu 2015 Useille mallipohjaisille moottoreille tarjottiin natiivi tuki.
1 joulukuu 2015 Versiossa 1.9 esiteltiin automaattinen salasanan vahvistustoiminto.
Elokuu 1 2016 Versiossa 1.10 kokotekstihaku haulle PostgreSQL laukaistiin.
4 Huhtikuu 2017 Versiosta 1.11 tuli viimeinen versio, joka tuki Python 2.7.
2 joulukuu 2017 Versiosta 2.0 tuli ensimmรคinen Python Vain 3-versio.
Elokuu 1 2018 Versiossa 2.1 oli mallin "katselu"-oikeuksia tukevat ominaisuudet.
2021 Django 3.0 -tuki poistettu ja Django 3.2 -tuki lisรคtty.

Tรคssรค Djangon aloittelijoiden opetusohjelmassa tutustumme nyt Djangon ominaisuuksiin.

Djangon ominaisuudet

Alla on Djangon ominaisuudet:

  • Auttaa sinua mรครคrittelemรครคn kaavoja URLhakemuksessasi.
  • Yksinkertainen mutta tehokas URL jรคrjestelmรครคn.
  • Sisรครคnrakennettu todennusjรคrjestelmรค.
  • Objektipohjaisella ohjelmointikielellรค toimiva tietokanta, joka tarjoaa luokkansa parhaan tiedon tallennuksen ja haun.
  • Automaattinen hallintapaneeli mahdollistaa kohteiden lisรครคmisen, muokkaamisen ja poistamisen. Voit mukauttaa hallintapaneelia tarpeidesi mukaan.
  • Vรคlimuistikehys sisรคltรครค useita vรคlimuistimekanismeja.

Tรคssรค Django-kehysopetusohjelmassa tutustumme nyt Djangon ominaisuuksiin.

Djangon ominaisuudet

Tรคssรค ovat Djangon tรคrkeimmรคt ominaisuudet:

  • Lรถysรคsti kytketty โ€“ Djangon avulla voit tehdรค pinon jokaisesta elementistรค itsenรคisen muista.
  • Less koodi โ€“ Varmistaa tehokkaan kehityksen.
  • Ei toistettu โ€“ Kaikki tulisi kehittรครค tรคsmรคlleen yhdessรค paikassa sen sijaan, ettรค sitรค toistettaisiin uudelleen.
  • Nopea kehitys โ€“ Django tarjoaa nopeaa ja luotettavaa sovelluskehitystรค.
  • Johdonmukainen suunnittelu โ€“ Djangon muotoilu on selkeรค ja sen avulla parhaiden web-kehityskรคytรคntรถjen noudattaminen on helppoa.

Seuraavaksi tรคssรค Djangon aloittelija-opetusohjelmassa opimme Djangon arkkitehtuurista.

Django ArchiTekniikka: MVC ja MVT

Alla on yksityiskohtainen Djangon arkkitehtuuri:

Django Archirakenne

Django Archirakenne

MVC malli

Kun puhutaan sovelluksista, jotka tarjoavat kรคyttรถliittymรคn (verkko- tai tyรถpรถytรคversio), puhutaan yleensรค MVC-arkkitehtuurista. MVC-malli perustuu malliin, nรคkymรครคn ja ohjaimeen.

Malli mรครคrittelee tietorakenteen ja huolehtii tietokannan kyselyistรค.

Nรคytรค mรครคrittรครค, mitรค tietoja tulee esittรครค ja palauttaa HTTP-vastauksen.

ohjain on sovelluksen osa, joka kรคsittelee kรคyttรคjรคn vuorovaikutusta.

Django MVC-MVT -kuvio

Model-View-Template (MVT) on eri kรคsite kuin MVC. Nรคiden kahden arkkitehtuurimallin tรคrkein ero on se, ettรค Django itse hallinnoi ohjainosaa (ohjelmistokoodia, joka ohjaa mallin ja nรคkymรคn vรคlistรค vuorovaikutusta). Template on HTML-tiedosto, joka on sekoitettu Djangon Template Language -tiedostoon eli DTL:รครคn.

Alla oleva kaavio nรคyttรครค, kuinka kaikki MVT-kuvion komponentit ovat vuorovaikutuksessa keskenรครคn tietyn kรคyttรคjรคpyynnรถn palvelemiseksi.

Django ArchiTekniikka: MVC ja MVT

MVT Archirakenne

Kuten yllรค olevasta kaaviosta nรคkyy, kรคyttรคjรค pyytรครค resurssia Djangolta. Django toimii ohjaimena ja tarkistaa kรคytettรคvissรค olevan resurssin URL.

Jos URL karttojen yhteydessรค kutsutaan nรคkymรคksi, joka on vuorovaikutuksessa mallin ja mallineen kanssa. Django vastaa sitten kรคyttรคjรคlle ja lรคhettรครค mallineen vastauksena.

Tรคssรค Djangon aloittelijoiden tutoriaalisarjassa opimme nyt Djangon komponenteista.

Djangon komponentit

muoto

Djangossa on tehokas lomakekirjasto, joka kรคsittelee lomakkeiden hahmontamista HTML-muodossa. Kirjasto auttaa validoimaan lรคhetetyt tiedot ja muuntamaan ne Python tyypit.

Authentication

Se kรคsittelee kรคyttรคjรคtilejรค, ryhmiรค, evรคstepohjaisia โ€‹โ€‹kรคyttรคjรคistuntoja ja paljon muuta.

admin

Se lukee malleissasi olevat metatiedot tarjotakseen vankan kรคyttรถliittymรคn, jota voidaan kรคyttรครค sivustosi sisรคllรถn hallintaan.

kansainvรคlistyminen

Django tukee tekstin kรครคntรคmistรค eri kielille sekรค pรคivรคmรครคrien, kellonaikojen, numeroiden ja aikavyรถhykkeiden paikalliskohtaista muotoilua.

Turvallisuus

Django tarjoaa suojauksia seuraavia hyรถkkรคyksiรค vastaan:

  • Sivustojen vรคlinen vรครคrentรคmispyyntรถ (CSRF)
  • Cross-site scripting
  • SQL-injektio
  • clickjacking
  • Etรคkoodin suorittaminen

Djangoa kรคyttรคvรคt kuuluisat yritykset

Tรคssรค on yrityksiรค, jotka kรคyttรคvรคt Djangoa:

  • Bitbucket
  • Disqus
  • NASA
  • PBS (julkinen yleisradiopalvelu)
  • Pinterest
  • Instagram
  • mozilla
  • Washington Post
  • New York Times
  • Los Angeles Times
  • Guardian
  • National Geographic
  • Discovery Channel

Djangon kรคytรถn haitat

Tรคssรค on joitakin Djangon kรคytรถn haittoja:

  • Yksi prosessi ei voi kรคsitellรค useita pyyntรถjรค samanaikaisesti.
  • Django on erittรคin monoliittinen tyรถkalu.
  • Komponentit otetaan kรคyttรถรถn yhdessรค, mikรค voi aiheuttaa hรคmmennystรค.
  • Djangon parissa tyรถskentelyyn tarvitaan koko jรคrjestelmรคn tuntemus.
  • Se tekee verkkosovelluskomponenteista tiiviisti yhteen kytkettyjรค.
  • Pieniรค tehtรคviรค varten sinun on tehtรคvรค pitkรค ohjelmointi.

UKK

Django on ensisijaisesti backend-kehityskehys, vaikka sitรค usein kuvataankin tรคyspinoksi, koska sen template-kerros renderรถi HTML:รครค. Se hallinnoi palvelinpuolen logiikkaa, tietokantoja, reititystรค ja tietoturvaa, kun taas templates hoitavat esityksen selaimelle.

Django on paristokรคyttรถinen, tรคyden palvelun kehys, jossa on sisรครคnrakennettu ORM, hallintapaneeli ja todennus. Flask on kevyt mikrokehys, joka pysyy minimaalisena ja luottaa samojen ominaisuuksien laajennuksiin, mikรค antaa kehittรคjille enemmรคn manuaalista hallintaa.

Djangon ORM eli objektirelaatiokartoitin antaa sinun mรครคritellรค tietokantataulukot seuraavasti: Python luokkia ja kysely niihin Python koodia raakan SQL:n sijaan. Se tukee tietokantoja, kuten PostgreSQL, MySQL, SQLiteja Oracle.

Suorita komento python -m django โ€“version tai avaa Python komentotulkissa ja suorita import django, jota seuraa print(django.get_version()). Molemmat nรคyttรคvรคt asennetun Djangon julkaisunumeron.

Middleware on sarja koukkuja, jotka kรคsittelevรคt jokaisen pyynnรถn ja vastauksen globaalisti. Django kรคyttรครค middlewarea istuntoihin, todennukseen, CSRF-suojaukseen ja suojausotsikoihin, jotka kaikki suoritetaan jรคrjestyksessรค ennen nรคkymรคn suorittamista ja sen jรคlkeen.

Toimiva tietรคmys Python ja perusverkkokรคsitteiden, kuten HTTP:n, HTML:n ja tietokantojen, tuntemus on vรคlttรคmรคtรถntรค. Olio-ohjelmoinnin ymmรคrtรคminen tekee Djangon mallien ja luokkapohjaisten nรคkymien oppimisesta paljon helpompaa.

Kyllรค. Django tarjoaa usein koneoppimismalleja nรคkymien tai Djangon REST-kehyksen kautta ja paljastaa ennusteet API-pรครคtepisteinรค. Koulutettu malli latautuu kerran kรคynnistyksen yhteydessรค ja palauttaa pรครคttelytulokset verkko- tai mobiiliasiakkaille.

GitHub Copilot ja vastaavat tekoรคlyavustajat tรคydentรคvรคt automaattisesti Djangon malleja, nรคkymiรค, URL mallit ja testit, ja ne voivat tukea toistuvia mallipohjia. Ne nopeuttavat kehitystรค, vaikka luotu koodi tulisi aina tarkistaa turvallisuuden ja oikeellisuuden varmistamiseksi.

Tiivistรค tรคmรค viesti seuraavasti: