Django Tutorial for begyndere: Funktioner, ArchiTecture & Historie

Resumรฉ af Django-tutorial

Denne Django-tutorial dรฆkker alle de grundlรฆggende emner fra bunden. I denne tutorial lรฆrer du begreber som hvad er Django, Django-historie, Django-funktioner, Karakteristik af Django-rammevรฆrk, Komponent af Django, Fordele og ulemper og meget mere.
Fรธr vi lรฆrer Django, lad os forstรฅ:

Hvad er en Web Framework?

En webramme er et kodebibliotek, som hjรฆlper dig med at opbygge en fleksibel, skalerbar og vedligeholdelsesbar; dynamisk hjemmeside, webapp og webtjenester. Forskellige web-frameworks er Zend til PHP, Ruby on Rails til Ruby osv.

Hvad er Django?

Django er en webudviklingsramme for Python som tilbyder standardmetoder til hurtig og effektiv hjemmesideudvikling. Det primรฆre mรฅl med denne webramme pรฅ hรธjt niveau er at skabe komplekse databasedrevne websteder. Det hjรฆlper dig med at bygge og vedligeholde kvalitetswebapplikationer. Det giver dig mulighed for at gรธre udviklingsprocessen smidig 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 muligheder for at komme i gang
  • Det giver en klar til brug brugergrรฆnseflade til administrative aktiviteter
  • Det muliggรธr flersprogede websteder ved at bruge dets indbyggede internationaliseringssystem
  • Hjรฆlper dig med at imรธdekomme de massive trafikkrav hurtigt
  • Django bruges til at bygge alle typer indholdsstyringssystemer, sociale netvรฆrk samt videnskabelige computerplatforme.
  • Django hjรฆlper dig med at levere end-to-end applikationstest
  • Hjรฆlper dig med at dokumentere din API med et HTML-output
  • REST Framework har rig understรธttelse af flere godkendelsesprotokoller
  • Tilladelser og drosselpolitikker
  • Det er meget brugt til hastighedsbegrรฆnsende API-anmodninger fra en enkelt bruger.

Djangos historie

ร…r Milestone
2003 Projektet blev startet af Adian 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 Reinhard
juni 2008 Erklรฆret, at en Django-software Foundation (DSF) ville fastholde Django.
29 juli 2009 Django 1.1-versionen blev udgivet med funktioner som Aggregates, transaktionsbaserede tests.
17 May 2010 Django 1.2 version blev frigivet. Opdateringen tilbรธd funktioner som flere databaser, implementering af e-mail backend og forbedringer til sessioner og cookie er lavet i denne version.
Marts 23 2011 1.3 version med funktioner som klassebaserede visninger, statiske filer blev introduceret
Marts 23 2012 1.4 version lanceret med nye funktioner som tidszoner og test i browser
26 februar 2013 1.5 version medfรธlger Python 3 Support, konfigurerbare brugermodelfunktioner.
November 6 2013 1.6-versionen leveres med DB-transaktionsstyring, forbindelsespuljefunktioner.
2 September 2014 1.7-versionen havde nye funktioner som applikationsindlรฆsning, migreringer og konfiguration
1 april 2015 indbygget support til flere skabelonmotorer.
1 Dec 2015 I version 1.9 blev den automatiske adgangskodevalideringsfunktion introduceret.
August 1 2016 I 1.10 version fuldtekst sรธg efter PostgreSQL lanceret.
4 april 2017 1.11-versionen bliver den sidste version, der understรธttes Python 2.7
2 Dec 2017 version 2.0 bliver den fรธrste version med kun python 3-udgivelse.
August 1 2018 version 2.1 leveres med model "view"-tilladelsessupportfunktion.
2021 Fjernet understรธttelse af Django 3.0 og tilfรธjet Django 3.2-understรธttelse

Lad os nu i denne Django for begyndere-tutorial lรฆre om funktionerne i Django.

Funktioner af Django

Nedenfor er funktionerne i Django:

  • Hjรฆlper dig med at definere mรธnstre for URL'erne i din applikation
  • Enkelt men kraftfuldt URL-system
  • Indbygget autentificeringssystem
  • Objektorienteret programmeringssprogsdatabase, som tilbyder klassens bedste datalagring og -hentning
  • Funktionen til automatisk admin-grรฆnseflade giver mulighed for at tilfรธje, redigere og slette elementer. Du kan tilpasse administrationspanelet efter dit behov.
  • Cache-framework leveres med flere cache-mekanismer.

Nu i denne Django-rammevejledning lรฆrer vi om karakteristika ved Django.

Karakteristika for Django

Her er de vigtigste egenskaber ved Django:

  • Loosely Coupled- 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
  • Hurtig udvikling- Django's tilbyder hurtig og pรฅlidelig applikationsudvikling.
  • Konsekvent design- Django opretholder et rent design og gรธr det nemt at fรธlge den bedste webudviklingspraksis.

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
Django Architecture

MVC mรธnster

Nรฅr vi taler om applikationer, der giver UI (web eller desktop), taler vi normalt om MVC-arkitektur. MVC-mรธnster er baseret pรฅ Model, View og Controller.

Model definerer datastrukturen og sรธrger for at forespรธrge 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 sammenlignet med MVC. Den stรธrste forskel mellem disse to arkitektoniske mรธnstre er, at Django selv administrerer Controller-delen (softwarekode, der styrer interaktionerne mellem modellen og visningen). Skabelonen er en HTML-fil, som blandes med Django Template Language-fil, som ogsรฅ kaldes DTL.

Nedenstรฅende diagram viser, hvordan alle komponenterne i MVT-mรธnsteret interagerer med hinanden for at tjene specifikt til en brugeranmodning.

Django Architecture: MVC og MVT

MVT udvidelse Architecture

Som det ses i ovenstรฅende diagram, anmoder en bruger om en ressource til Django. Django fungerer som controller og kontrollerer den tilgรฆngelige ressource i URL.

Hvis URL maps, kaldes en visning, som interagerer med model og skabelon. Django svarer derefter til brugeren og sender en skabelon som svar.

Nu i denne Django-tutorials for begyndere-serien lรฆrer vi om komponenter 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

Det hรฅndterer brugerkonti, grupper, cookie-baserede brugersessioner osv.

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, 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)
  • Pinterest
  • Instagram
  • Mozilla
  • The Washington Post
  • NY Times
  • LA Times
  • The Guardian National Geographic
  • Discovery Channel

Ulemper ved at bruge Django

  • En proces kan ikke hรฅndtere flere anmodninger samtidigt.
  • Django er et meget monolitisk vรฆrktรธj.
  • Komponenter bliver implementeret sammen, hvilket kan skabe forvirring.
  • Kendskab til hele systemet er nรธdvendigt for at arbejde pรฅ Django
  • Gรธr webapplikationskomponenter tรฆt sammenkoblede
  • Du skal lave langvarig programmering til mindre opgaver.

Resumรฉ

  • Django er en webudviklingsramme til Python som tilbyder en standardmetode til hurtig og effektiv hjemmesideudvikling.
  • Django startede blev af Adian Holovaty og Simon Willison som et internt projekt pรฅ avisen Lawrence Journal-World i 2003
  • Django hjรฆlper dig med at dokumentere din API med et HTML-output.
  • Django giver dig mulighed for at tilpasse administrationspanelet efter dit behov.
  • Django hjรฆlper dig med at gรธre hvert element i sin stak uafhรฆngigt af de andre.
  • Den stรธrste forskel mellem MVC- og MVT-arkitektoniske mรธnstre er, at Django selv administrerer Controller-delen.
  • Vรฆsentlige komponenter i Djangos arkitektur er: Form, Autentificering, Admin, Internationalisering, Sikkerhed.
  • Bitbucket, DISQUS, Nasa, Pinterest, Instagram, Mozilla osv. bruger Django
  • Den stรธrste ulempe ved Django er, at den ikke kan hรฅndtere flere anmodninger samtidigt.

Opsummer dette indlรฆg med: