Django-vejledning: Funktioner, ArchiTecture & Historie
โก Smart opsummering
Django er et gratis, open source-program Python Webframework bygget pรฅ model-view-skabelon-mรธnsteret, der muliggรธr hurtig udvikling af sikre, skalerbare, databasedrevne websteder gennem genanvendelige komponenter, en automatisk administrationsgrรฆnseflade og batteridrevet design.

Django driver nogle af de stรธrste websteder pรฅ nettet, mens keeping Daglig udvikling hurtig og organiseret. Fรธr vi udforsker dens funktioner, arkitektur og historie, starter afsnittene nedenfor med det grundlรฆggende i webframeworks og hvad der gรธr Django unik.
Resumรฉ af Django-tutorial
Denne Django-tutorial dรฆkker alle de grundlรฆggende emner fra bunden. I denne tutorial lรฆrer du koncepter som Django, dets historie, dets funktioner, Django-frameworkets karakteristika, Djangos komponenter, dets fordele og ulemper og meget mere.
Fรธr vi lรฆrer Django, lad os forstรฅ:
Hvad er en Web Framework?
Et webframework er et kodebibliotek, der hjรฆlper dig med at bygge et fleksibelt, skalerbart og vedligeholdbart dynamisk websted, webapp eller webtjeneste. Forskellige webframeworks inkluderer Zend til PHP, Ruby on Rails for Ruby og andre.
Hvad er Django?
Django er en webudviklingsramme for Python som tilbyder standardmetoder til hurtig og effektiv hjemmesideudvikling. Hovedformรฅlet med dette webframework pรฅ hรธjt niveau er at skabe komplekse databasedrevne hjemmesider. Det hjรฆlper dig med at bygge og vedligeholde webapplikationer af hรธj kvalitet. Det gรธr det muligt at gรธre udviklingsprocessen problemfri og tidsbesparende for hurtig udvikling.
Hvorfor Django? Vigtigste fordele ved Django
Her er de vigtigste fordele ved Django:
- Django er nem at sรฆtte op og kรธre. Det tilbyder en rรฆkke forskellige muligheder for at komme i gang.
- Den tilbyder en brugervenlig brugergrรฆnseflade til administrative aktiviteter.
- Det muliggรธr flersprogede websteder ved at bruge det indbyggede internationaliseringssystem.
- Det hjรฆlper dig med hurtigt at imรธdekomme massive trafikbehov.
- Django bruges til at bygge alle typer indholdsstyringssystemer, sociale netvรฆrk samt videnskabelige databehandlingsplatforme.
- Django hjรฆlper dig med at levere end-to-end applikationstest.
- Det hjรฆlper dig med at dokumentere din API med HTML-output.
- REST-frameworket har omfattende understรธttelse af adskillige godkendelsesprotokoller.
- Den tilbyder tilladelser og begrรฆnsningspolitikker.
- Det er meget brugt til hastighedsbegrรฆnsende API-anmodninger fra en enkelt bruger.
Djangos historie
| ร r | Milestone |
|---|---|
| 2003 | Projektet blev startet af Adrian Holovaty og Simon Willison som et internt projekt hos avisen Lawrence Journal-World. |
| Juli 2005 | Den blev udgivet i juli 2005 som "Django", opkaldt efter jazzguitaristen Django Reinhardt. |
| juni 2008 | Det blev erklรฆret, at en Django-software Foundation (DSF) ville fastholde Django. |
| 29 juli 2009 | Django 1.1 blev udgivet med funktioner som aggregater og transaktionsbaserede tests. |
| 17 May 2010 | Django 1.2 blev udgivet. Opdateringen tilbรธd funktioner som flere databaser og en e-mail-backend, og der blev foretaget forbedringer af sessioner og cookies. |
| Marts 23 2011 | Version 1.3 introducerede funktioner som klassebaserede visninger og statiske filer. |
| Marts 23 2012 | Version 1.4 blev lanceret med nye funktioner som tidszoner og test i browseren. |
| 26 februar 2013 | 1.5-versionen kom med Python 3 understรธttelse og konfigurerbare brugermodelfunktioner. |
| November 6 2013 | 1.6-versionen kom med funktioner til styring af databasetransaktioner og forbindelsespooling. |
| 2 September 2014 | Version 1.7 havde nye funktioner som indlรฆsning af applikationer, migreringer og konfiguration. |
| 1 april 2015 | Der blev ydet native understรธttelse af flere skabelonmotorer. |
| 1 Dec 2015 | I version 1.9 blev der introduceret en automatisk funktion til validering af adgangskoder. |
| August 1 2016 | I version 1.10 er fuldtekstsรธgning efter PostgreSQL blev lanceret. |
| 4 april 2017 | Version 1.11 blev den sidste version, der understรธttede Python 2.7. |
| 2 Dec 2017 | Version 2.0 blev den fรธrste Python Kun 3-udgivelsesversion. |
| August 1 2018 | Version 2.1 kom med understรธttelse af modeltilladelser som "visning". |
| 2021 | Fjernet understรธttelse af Django 3.0 og tilfรธjet understรธttelse af Django 3.2. |
I denne Django-tutorial for begyndere, lad os nu lรฆre om funktionerne i Django.
Funktioner af Django
Nedenfor er funktionerne i Django:
- Hjรฆlper dig med at definere mรธnstre for URLs i din ansรธgning.
- Simpelt, men kraftfuldt URL system.
- Indbygget autentificeringssystem.
- En objektorienteret programmeringsdatabase, der tilbyder den bedste datalagring og -hentning i sin klasse.
- Den automatiske administrationsgrรฆnseflade giver dig mulighed for at tilfรธje, redigere og slette elementer. Du kan tilpasse administrationspanelet efter behov.
- Cache-frameworket leveres med flere cache-mekanismer.
I denne Django framework-tutorial vil vi lรฆre om Djangos egenskaber.
Karakteristika for Django
Her er de vigtigste egenskaber ved Django:
- Lรธst forbundet โ Django hjรฆlper dig med at gรธre hvert element i sin stak uafhรฆngigt af de andre.
- Less kode โ Sikrer effektiv udvikling.
- Ikke gentaget โ Alt skal udvikles pรฅ prรฆcis รฉt sted i stedet for at gentage det igen og igen.
- Hurtig udvikling โ Django tilbyder hurtig og pรฅlidelig applikationsudvikling.
- Konsistent design โ Django opretholder et rent design og gรธr det nemt at fรธlge de bedste webudviklingspraksisser.
Nรฆste i denne Django-begyndertutorial lรฆrer vi om Djangos arkitektur.
Django Architecture: MVC og MVT
Nedenfor er en detaljeret arkitektur af Django:
Django Architecture
MVC mรธnster
Nรฅr vi taler om applikationer, der leverer en brugergrรฆnseflade (web eller desktop), taler vi normalt om MVC-arkitektur. MVC-mรธnsteret er baseret pรฅ Model, View og Controller.
Model definerer datastrukturen og tager sig af forespรธrgsler i databasen.
Se definerer hvilke data der skal prรฆsenteres og returnerer et HTTP-svar.
controller er den del af applikationen, der hรฅndterer brugerinteraktionen.
Django MVC-MVT mรธnster
Model-View-Template (MVT) er et andet koncept end MVC. Hovedforskellen mellem disse to arkitekturmรธnstre er, at Django selv administrerer Controller-delen (softwarekoden, der styrer interaktionerne mellem modellen og visningen). Skabelonen er en HTML-fil, der er blandet med en Django Template Language-fil, ogsรฅ kaldet DTL.
Diagrammet nedenfor viser, hvordan alle komponenterne i MVT-mรธnsteret interagerer med hinanden for at imรธdekomme en specifik brugeranmodning.
MVT udvidelse Architecture
Som det ses i diagrammet ovenfor, anmoder en bruger om en ressource fra Django. Django fungerer som en controller og kontrollerer, om der er tilgรฆngelige ressourcer i URL.
Hvis URL kort, kaldes en visning, der interagerer med modellen og skabelonen. Django svarer derefter brugeren og sender en skabelon som svar.
I denne serie af Django-vejledninger for begyndere vil vi lรฆre om komponenterne i Django.
Komponenter af Django
Form
Django har et kraftfuldt formularbibliotek, som hรฅndterer gengivelse af formularer som HTML. Biblioteket hjรฆlper med at validere indsendte data og konvertere dem til Python typer.
Godkendelse
Den hรฅndterer brugerkonti, grupper, cookiebaserede brugersessioner og mere.
Admin
Den lรฆser metadata i dine modeller for at give en robust grรฆnseflade, som kan bruges til at administrere indhold pรฅ dit websted.
Internationalisering
Django understรธtter oversรฆttelse af tekst til forskellige sprog og lokalitetsspecifik formatering af datoer, klokkeslรฆt, tal og tidszoner.
Sikkerhed
Django yder beskyttelse mod fรธlgende angreb:
- Cross-Site Request Forgery (CSRF)
- Cross-site scripting
- SQL-indsprรธjtning
- Clickjacking
- Fjernkรธrsel af kode
Berรธmte virksomheder, der bruger Django
Her er virksomheder, der bruger Django:
- Bitbucket
- Disqus
- NASA
- PBS (Public Broadcasting Service)
- Mozilla
- The Washington Post
- The New York Times
- Los Angeles Times
- The Guardian
- national geografi
- Discovery Channel
Ulemper ved at bruge Django
Her er nogle ulemper ved at bruge Django:
- En enkelt proces kan ikke hรฅndtere flere anmodninger samtidigt.
- Django er et meget monolitisk vรฆrktรธj.
- Komponenter bliver installeret sammen, hvilket kan skabe forvirring.
- Kendskab til hele systemet er nรธdvendigt for at arbejde med Django.
- Det gรธr webapplikationskomponenter tรฆt forbundet.
- Du skal lave langvarig programmering til mindre opgaver.


