Django-handledning: Funktioner, ArchiTecture & History
โก Smart sammanfattning
Django รคr ett gratis, รถppen kรคllkodsprogram Python Webbramverk byggt pรฅ modell-vy-mall-mรถnstret, vilket mรถjliggรถr snabb utveckling av sรคkra, skalbara, databasdrivna webbplatser genom รฅteranvรคndbara komponenter, ett automatiskt administratรถrsgrรคnssnitt och batteridriven design.

Django driver nรฅgra av de stรถrsta webbplatserna pรฅ webben medan keeping daglig utveckling snabb och organiserad. Innan vi utforskar dess funktioner, arkitektur och historia bรถrjar avsnitten nedan med grunderna i webbramverk och vad som gรถr Django unikt.
Sammanfattning av Django handledning
Den hรคr Django-handledningen tรคcker alla grundlรคggande รคmnen frรฅn grunden. I handledningen lรคr du dig koncept som vad Django รคr, dess historia, dess funktioner, Django-ramverkets egenskaper, Djangos komponenter, dess fรถrdelar och nackdelar och mycket mer.
Innan vi lรคr oss Django, lรฅt oss fรถrstรฅ:
Vad รคr ett webbramverk?
Ett webbramverk รคr ett kodbibliotek som hjรคlper dig att bygga en flexibel, skalbar och underhรฅllbar dynamisk webbplats, webbapp eller webbtjรคnst. Olika webbramverk inkluderar Zend fรถr PHP, Ruby on Rails fรถr Ruby och andra.
Vad รคr Django?
Django รคr ett webbutvecklingsramverk fรถr Python vilket erbjuder standardmetoder fรถr snabb och effektiv webbutveckling. Det primรคra mรฅlet med detta webbramverk pรฅ hรถg nivรฅ รคr att skapa komplexa databasdrivna webbplatser. Det hjรคlper dig att bygga och underhรฅlla webbapplikationer av hรถg kvalitet. Det gรถr att du kan gรถra utvecklingsprocessen smidig och tidsbesparande fรถr snabb utveckling.
Varfรถr Django? Viktiga fรถrdelar med Django
Hรคr รคr de viktigaste fรถrdelarna med Django:
- Django รคr enkelt att installera och kรถra. Det erbjuder en mรคngd olika alternativ fรถr att komma igรฅng.
- Den tillhandahรฅller ett fรคrdigt anvรคndargrรคnssnitt fรถr administrativa aktiviteter.
- Den mรถjliggรถr flersprรฅkiga webbplatser genom att anvรคnda sitt inbyggda internationaliseringssystem.
- Det hjรคlper dig att snabbt mรถta massiva trafikbehov.
- Django anvรคnds fรถr att bygga alla typer av innehรฅllshanteringssystem, sociala nรคtverk samt vetenskapliga berรคkningsplattformar.
- Django hjรคlper dig att tillhandahรฅlla heltรคckande applikationstestning.
- Det hjรคlper dig att dokumentera ditt API med HTML-utdata.
- REST-ramverket har rikt stรถd fรถr flera autentiseringsprotokoll.
- Den erbjuder behรถrigheter och strypningspolicyer.
- Det anvรคnds ofta fรถr hastighetsbegrรคnsande API-fรถrfrรฅgningar frรฅn en enskild anvรคndare.
Djangos historia
| ร r | Milestone |
|---|---|
| 2003 | Projektet startades av Adrian Holovaty och Simon Willison som ett internt projekt pรฅ tidningen Lawrence Journal-World. |
| juli 2005 | Den slรคpptes i juli 2005 som "Django", uppkallad efter jazzgitarristen Django Reinhardt. |
| juni 2008 | Det fรถrklarades att en Django-programvara Foundation (DSF) skulle behรฅlla Django. |
| 29 July 2009 | Django 1.1 slรคpptes med funktioner som aggregeringar och transaktionsbaserade tester. |
| 17 May 2010 | Django 1.2 slรคpptes. Uppdateringen erbjรถd funktioner som flera databaser och ett e-postbackend, och fรถrbรคttringar gjordes fรถr sessioner och cookies. |
| Mars 23 2011 | Version 1.3 introducerade funktioner som klassbaserade vyer och statiska filer. |
| Mars 23 2012 | Version 1.4 lanserades med nya funktioner som tidszoner och testning i webblรคsaren. |
| Februari 26 2013 | 1.5-versionen kom med Python 3 stรถd och konfigurerbara anvรคndarmodellfunktioner. |
| November 6 2013 | 1.6-versionen kom med funktioner fรถr hantering av databastransaktioner och anslutningspooler. |
| 2 September 2014 | Version 1.7 hade nya funktioner som laddning av applikationer, migreringar och konfiguration. |
| April 1 2015 | Inbyggt stรถd tillhandahรถlls fรถr flera mallmotorer. |
| 1 Dec 2015 | I version 1.9 introducerades en automatisk lรถsenordsvalideringsfunktion. |
| Augusti 1 2016 | I version 1.10, fulltextsรถkning efter PostgreSQL lanserades. |
| April 4 2017 | Version 1.11 blev den sista versionen som stรถdde Python 2.7. |
| 2 Dec 2017 | Version 2.0 blev den fรถrsta Python Endast 3-version. |
| Augusti 1 2018 | Version 2.1 kom med stรถd fรถr modellbehรถrighet fรถr "visning". |
| 2021 | Tog bort stรถd fรถr Django 3.0 och lade till stรถd fรถr Django 3.2. |
I den hรคr handledningen om Django fรถr nybรถrjare ska vi nu lรคra oss om funktionerna i Django.
Funktioner hos Django
Nedan รคr funktionerna i Django:
- Hjรคlper dig att definiera mรถnster fรถr URLs i din ansรถkan.
- Enkelt men kraftfullt URL systemet.
- Inbyggt autentiseringssystem.
- En objektorienterad programmeringsdatabas som erbjuder datalagring och hรคmtning i toppklass.
- Det automatiska administratรถrsgrรคnssnittet gรถr det mรถjligt att lรคgga till, redigera och ta bort objekt. Du kan anpassa administratรถrspanelen efter dina behov.
- Cache-ramverket levereras med flera cachemekanismer.
I den hรคr handledningen fรถr Django-ramverket kommer vi nu att lรคra oss om Djangos egenskaper.
Egenskaper hos Django
Hรคr รคr de viktigaste egenskaperna hos Django:
- Lรถst kopplade โ Django hjรคlper dig att gรถra varje element i sin stack oberoende av de andra.
- Less koda โ Sรคkerstรคller effektiv utveckling.
- Inte upprepad โ Allting bรถr utvecklas pรฅ exakt ett stรคlle istรคllet fรถr att upprepas om och om igen.
- Snabb utveckling โ Django erbjuder snabb och pรฅlitlig applikationsutveckling.
- Konsekvent design โ Django har en ren design och gรถr det enkelt att fรถlja de bรคsta webbutvecklingsmetoderna.
Nรคsta i denna Django nybรถrjarhandledning kommer vi att lรคra oss om Djangos arkitektur.
Django Architecture: MVC och MVT
Nedan รคr en detaljerad arkitektur av Django:
Django Architecture
MVC-mรถnster
Nรคr vi pratar om applikationer som tillhandahรฅller ett anvรคndargrรคnssnitt (webb eller skrivbord) brukar vi prata om MVC-arkitektur. MVC-mรถnstret รคr baserat pรฅ modell, vy och kontroller.
Ocuco-landskapet Modell definierar datastrukturen och tar hand om att frรฅga databasen.
Ocuco-landskapet Visa definierar vilken data som ska presenteras och returnerar ett HTTP-svar.
Ocuco-landskapet Regulator รคr den del av applikationen som hanterar anvรคndarinteraktionen.
Django MVC-MVT mรถnster
Model-View-Template (MVT) รคr ett annat koncept jรคmfรถrt med MVC. Den stรถrsta skillnaden mellan dessa tvรฅ arkitekturmรถnster รคr att Django sjรคlv hanterar Controller-delen (programvarukoden som styr interaktionerna mellan modellen och vyn). Mallen รคr en HTML-fil som blandas med en Django Template Language-fil, รคven kallad DTL.
Diagrammet nedan visar hur alla komponenter i MVT-mรถnstret interagerar med varandra fรถr att tillgodose en specifik anvรคndarfรถrfrรฅgan.
MVT Architecture
Som framgรฅr av diagrammet ovan begรคr en anvรคndare en resurs frรฅn Django. Django fungerar som en kontrollant och kontrollerar om det finns en tillgรคnglig resurs i URL.
Om URL kartor anropas en vy som interagerar med modellen och mallen. Django svarar sedan anvรคndaren och skickar en mall som svar.
I den hรคr serien med Django-handledningar fรถr nybรถrjare ska vi lรคra oss om komponenterna i Django.
Komponenter av Django
Form
Django har ett kraftfullt formulรคrbibliotek som hanterar rendering av formulรคr som HTML. Biblioteket hjรคlper till att validera inlรคmnade data och konvertera dem till Python typer.
Autentisering
Den hanterar anvรคndarkonton, grupper, cookie-baserade anvรคndarsessioner och mer.
Administration
Den lรคser metadata i dina modeller fรถr att ge ett robust grรคnssnitt som kan anvรคndas fรถr att hantera innehรฅll pรฅ din webbplats.
internationalisering
Django erbjuder stรถd fรถr att รถversรคtta text till olika sprรฅk och lokalspecifik formatering av datum, tider, siffror och tidszoner.
Sรคkerhet
Django erbjuder skydd mot fรถljande attacker:
- Cross-Site Request Forgery (CSRF)
- Cross-site scripting
- SQL-injektion
- Clickjacking
- Fjรคrrkรถrning av kod
Kรคnda fรถretag som anvรคnder Django
Hรคr รคr fรถretag som anvรคnder Django:
- Bitbucket
- Disqus
- NASA
- PBS (Public Broadcasting Service)
- Mozilla
- The Washington Post
- The New York Times
- Los Angeles Times
- The Guardian
- nationella geografiska
- Discovery Channel
Nackdelar med att anvรคnda Django
Hรคr รคr nรฅgra nackdelar med att anvรคnda Django:
- En enda process kan inte hantera flera fรถrfrรฅgningar samtidigt.
- Django รคr ett mycket monolitiskt verktyg.
- Komponenter distribueras tillsammans, vilket kan skapa fรถrvirring.
- Kunskap om hela systemet krรคvs fรถr att arbeta med Django.
- Det gรถr webbapplikationskomponenter tรคtt sammankopplade.
- Du behรถver gรถra lรฅngvarig programmering fรถr mindre uppgifter.


