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.

  • ๐Ÿ”˜ Framework: Django er pรฅ hรธjt niveau Python Framework til hurtigt at bygge komplekse, databasedrevne webapplikationer.
  • โ˜‘๏ธ Archilรฆre: MVT-mรธnsteret (model-view-template) lader Django administrere controlleren og adskille data, logik og prรฆsentation.
  • โœ… Batterier inkluderet: Indbygget administration, godkendelse, formularer og internationalisering fjerner det meste gentagne opsรฆtningsarbejde.
  • ๐Ÿ› ๏ธ Sikkerhed: Standardsikkerhedsforanstaltninger blokerer CSRF, cross-site scripting, SQL-injektion og clickjacking-angreb.
  • ๐Ÿงช Skala: Instagram, Pinterest, Mozilla og Disqus er afhรฆngige af Django for at generere meget hรธj trafik.
  • ๐Ÿค– AI: Django bruger maskinlรฆringsmodeller som API'er, og assistenter som GitHub Copilot fremskynder backend-kodning.

Django-vejledning for begyndere

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

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.

Django Architecture: MVC og MVT

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)
  • Pinterest
  • Instagram
  • 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.

Ofte Stillede Spรธrgsmรฅl

Django er primรฆrt et backend-framework, selvom det ofte beskrives som full-stack, fordi dets skabelonlag gengiver HTML. Det hรฅndterer server-side logik, databaser, routing og sikkerhed, mens skabeloner hรฅndterer prรฆsentation for browseren.

Django er et batteridrevet full-stack framework med indbygget ORM, administrationspanel og godkendelse. Flask er et letvรฆgts microframework, der forbliver minimalt og er afhรฆngig af udvidelser for de samme funktioner, hvilket giver udviklere mere manuel kontrol.

Django ORM, eller objektrelationel mapper, lader dig definere databasetabeller som Python klasser og forespรธrg dem med Python kode i stedet for rรฅ SQL. Den understรธtter databaser som f.eks. PostgreSQL, MySQL, SQLiteog Oracle.

Kรธr python -m django โ€“version pรฅ kommandolinjen, eller รฅbn en Python `shell` og `run` `import django` efterfulgt af `print(django.get_version()`). Begge viser det installerede Django-versionsnummer.

Middleware er en rรฆkke hooks, der behandler alle anmodninger og svar globalt. Django bruger middleware til sessioner, godkendelse, CSRF-beskyttelse og sikkerhedsheadere, der hver kรธrer i rรฆkkefรธlge fรธr og efter din visning udfรธres.

Et praktisk kendskab til Python og grundlรฆggende webkoncepter som HTTP, HTML og databaser er pรฅkrรฆvet. Forstรฅelse af objektorienteret programmering gรธr Django-modeller og klassebaserede visninger meget nemmere at lรฆre.

Ja. Django leverer ofte maskinlรฆringsmodeller via views eller Django REST Framework, hvor forudsigelser eksponeres som API-slutpunkter. En trรฆnet model indlรฆses รฉn gang ved opstart og returnerer inferensresultater til web- eller mobilklienter.

GitHub Copilot og lignende AI-assistenter autofuldfรธrer Django-modeller, -visninger URL mรธnstre og tests, og kan understรธtte gentagne standardtekster. De fremskynder udviklingen, selvom genereret kode altid bรธr gennemgรฅs for sikkerhed og korrekthed.

Opsummer dette indlรฆg med: