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.



