Django-handleiding: Functies, Architectuur & Geschiedenis

โšก Slimme samenvatting

Django is een gratis, open-source framework. Python Webframework gebouwd volgens het model-view-template-patroon, dat snelle ontwikkeling mogelijk maakt van veilige, schaalbare, databasegestuurde websites door middel van herbruikbare componenten, een automatische beheerdersinterface en een 'batteries-included'-ontwerp.

  • ๐Ÿ”˜ Kader: Django is een geavanceerd framework. Python Een framework voor het snel bouwen van complexe, databasegestuurde webapplicaties.
  • โ˜‘๏ธ Archistructuur: Het model-view-template (MVT)-patroon stelt Django in staat de controller te beheren en data, logica en presentatie van elkaar te scheiden.
  • โœ… Inclusief batterijen: De ingebouwde beheer-, authenticatie-, formulieren- en internationaliseringsfuncties nemen het meeste repetitieve instelwerk weg.
  • ๏ธ Beveiliging: Standaardbeveiligingsmechanismen blokkeren CSRF-, cross-site scripting-, SQL-injectie- en clickjacking-aanvallen.
  • ๐Ÿงช Schaal: InstagramPinterest, Mozilla en Disqus vertrouwen op Django om zeer grote hoeveelheden verkeer te verwerken.
  • ๐Ÿค– AI: Django biedt machine learning-modellen aan als API's, en hulpmiddelen zoals GitHub Copilot versnellen de backend-programmering.

Django-zelfstudie voor beginners

Django drijft enkele van de grootste websites op het web aan, terwijl het tegelijkertijdping Dagelijkse ontwikkeling, snel en georganiseerd. Voordat we de functies, architectuur en geschiedenis van Django bespreken, beginnen de onderstaande paragrafen met de basisprincipes van webframeworks en wat Django uniek maakt.

Samenvatting van de Django-zelfstudie

Deze Django-tutorial behandelt alle basisonderwerpen vanaf het begin. In deze tutorial leer je concepten zoals wat Django is, de geschiedenis ervan, de functies, de kenmerken van het Django-framework, de componenten van Django, de voor- en nadelen en nog veel meer.

Voordat we Django gaan leren, laten we eerst het volgende begrijpen:

Wat is een webframework?

Een webframework is een codebibliotheek waarmee je een flexibele, schaalbare en onderhoudbare dynamische website, webapplicatie of webservice kunt bouwen. Voorbeelden van webframeworks zijn Zend voor PHP. Ruby on Rails voor Ruby, en anderen.

Wat is Django?

Django is een webontwikkelingsframework voor Python Dit framework biedt standaardmethoden voor snelle en effectieve websiteontwikkeling. Het primaire doel van dit geavanceerde webframework is het creรซren van complexe, databasegestuurde websites. Het helpt u bij het bouwen en onderhouden van hoogwaardige webapplicaties. Het maakt het ontwikkelingsproces soepel en tijdbesparend, wat zorgt voor snelle ontwikkeling.

Waarom Django? Belangrijkste voordelen van Django

Dit zijn de belangrijkste voordelen van Django:

  • Django is eenvoudig te installeren en te gebruiken. Het biedt diverse opties om direct aan de slag te gaan.
  • Het biedt een gebruiksklare gebruikersinterface voor administratieve taken.
  • Het maakt meertalige websites mogelijk door gebruik te maken van het ingebouwde internationaliseringssysteem.
  • Het helpt je om snel aan enorme verkeerspieken te voldoen.
  • Django wordt gebruikt voor het bouwen van allerlei soorten contentmanagementsystemen, sociale netwerken en platforms voor wetenschappelijk computergebruik.
  • Django helpt je bij het uitvoeren van complete applicatietests.
  • Het helpt je om je API te documenteren met een HTML-output.
  • Het REST-framework biedt uitgebreide ondersteuning voor diverse authenticatieprotocollen.
  • Het biedt machtigings- en beperkingsbeleid.
  • Het wordt veel gebruikt voor het beperken van API-verzoeken van รฉรฉn gebruiker.

Geschiedenis van Django

Jaar Milestone
2003 Het project werd opgezet door Adrian Holovaty en Simon Willison als een intern project bij de krant Lawrence Journal-World.
Juli 2005 Het album werd in juli 2005 uitgebracht onder de naam "Django", vernoemd naar de jazzgitarist Django Reinhardt.
Juni 2008 Er werd verklaard dat Django Software Foundation (DSF) zou Django behouden.
29 July 2009 Django 1.1 werd uitgebracht met functies zoals aggregates en transactiegebaseerde tests.
17 May 2010 Django 1.2 werd uitgebracht. De update bood nieuwe functies, zoals meerdere databases en een e-mailbackend, en er werden verbeteringen aangebracht aan sessies en cookies.
Maart 23 2011 Versie 1.3 introduceerde functies zoals op klassen gebaseerde weergaven en statische bestanden.
Maart 23 2012 Versie 1.4 werd gelanceerd met nieuwe functies zoals tijdzones en testen in de browser.
Februari 26 2013 De 1.5-versie werd geleverd met Python 3 ondersteunende en configureerbare gebruikersmodelfuncties.
6 november 2013 Versie 1.6 bevatte functies voor databasetransactiebeheer en connection pooling.
2 september 2014 Versie 1.7 bevatte nieuwe functies zoals het laden van applicaties, migraties en configuratie.
April 1 2015 Er werd native ondersteuning geboden voor meerdere template-engines.
1 Dec 2015 In versie 1.9 werd een functie voor automatische wachtwoordvalidatie geรฏntroduceerd.
Augustus 1 2016 In versie 1.10 is zoeken in de volledige tekst mogelijk voor PostgreSQL was gelanceerd.
April 4 2017 Versie 1.11 was de laatste versie die ondersteuning bood. Python 2.7.
2 Dec 2017 Versie 2.0 werd de eerste Python Alleen releaseversie 3.
Augustus 1 2018 Versie 2.1 bevatte functies ter ondersteuning van de "weergave"-machtiging voor modellen.
2021 Ondersteuning voor Django 3.0 is verwijderd en ondersteuning voor Django 3.2 is toegevoegd.

In deze Django-tutorial voor beginners gaan we de functies van Django leren kennen.

Kenmerken van Django

Hieronder staan โ€‹โ€‹de kenmerken van Django:

  • Helpt je bij het definiรซren van patronen voor de URLin uw aanvraag.
  • Eenvoudig maar krachtig URL systeem.
  • Ingebouwd authenticatiesysteem.
  • Een objectgeoriรซnteerde programmeertaaldatabase die de beste mogelijkheden biedt voor gegevensopslag en -opvraging.
  • De automatische beheerdersinterface biedt de mogelijkheid om items toe te voegen, te bewerken en te verwijderen. U kunt het beheerderspaneel naar wens aanpassen.
  • Het cacheframework biedt meerdere cachemechanismen.

In deze tutorial over het Django-framework leren we meer over de kenmerken van Django.

Kenmerken van Django

Dit zijn de belangrijkste kenmerken van Django:

  • Los verbonden โ€“ Django helpt je om elk element van de stack onafhankelijk van de andere elementen te maken.
  • Less code โ€“ Zorgt voor effectieve ontwikkeling.
  • Niet herhaald โ€“ Alles moet op precies รฉรฉn plek worden ontwikkeld in plaats van het steeds te herhalen.
  • Snelle ontwikkeling โ€“ Django biedt snelle en betrouwbare applicatieontwikkeling.
  • Consistent ontwerp โ€“ Django hanteert een overzichtelijk ontwerp en maakt het gemakkelijk om de beste webontwikkelingspraktijken te volgen.

In deze Django-beginnershandleiding gaan we dieper in op de architectuur van Django.

Django Archistructuur: MVC en MVT

Hieronder vindt u een gedetailleerde architectuur van Django:

Django Architectuur

Django Architectuur

MVC-patroon

Wanneer we het hebben over applicaties met een gebruikersinterface (web of desktop), spreken we meestal over de MVC-architectuur. Het MVC-patroon is gebaseerd op Model, View en Controller.

De Model definieert de datastructuur en zorgt voor het uitvoeren van query's op de database.

De Bekijk definieert welke gegevens moeten worden gepresenteerd en retourneert een HTTP-antwoord.

De Controller is het onderdeel van de applicatie dat de gebruikersinteractie afhandelt.

Django MVC-MVT-patroon

Het Model-View-Template (MVT) is een ander concept dan MVC. Het belangrijkste verschil tussen deze twee architectuurpatronen is dat Django zelf het controllergedeelte beheert (de softwarecode die de interacties tussen het model en de view regelt). De template is een HTML-bestand dat gecombineerd wordt met een Django Template Language-bestand, ook wel DTL genoemd.

Het onderstaande diagram laat zien hoe alle componenten van het MVT-patroon met elkaar samenwerken om een โ€‹โ€‹specifiek gebruikersverzoek af te handelen.

Django Archistructuur: MVC en MVT

MVT Architectuur

Zoals te zien in het bovenstaande diagram, vraagt โ€‹โ€‹een gebruiker een resource aan bij Django. Django fungeert als controller en controleert of de resource beschikbaar is. URL.

Indien de URL Maps, een view wordt aangeroepen die interactie heeft met het model en de template. Django reageert vervolgens op de gebruiker en stuurt een template als antwoord.

In deze serie Django-tutorials voor beginners leren we meer over de componenten van Django.

Onderdelen van Django

Form

Django heeft een krachtige formulierbibliotheek die formulieren als HTML verwerkt. De bibliotheek helpt bij het valideren van ingediende gegevens en het converteren ervan naar Python types.

authenticatie

Het beheert gebruikersaccounts, groepen, op cookies gebaseerde gebruikerssessies en meer.

beheerder

Het leest metadata in uw modellen om een โ€‹โ€‹robuuste interface te bieden die kan worden gebruikt om de inhoud op uw site te beheren.

internationalisering

Django biedt ondersteuning voor het vertalen van tekst naar verschillende talen en voor het opmaken van datums, tijden, getallen en tijdzones op basis van de lokale context.

Security

Django biedt beveiliging tegen de volgende aanvallen:

  • Cross-site Request Forgery (CSRF)
  • Cross-site scripting
  • SQL injectie
  • Clickjacking
  • Uitvoering van externe code

Beroemde bedrijven die Django gebruiken

Hieronder vindt u een lijst met bedrijven die Django gebruiken:

  • Bitbucket
  • Disqus
  • NASA
  • PBS (openbare omroepdienst)
  • Pinterest
  • Instagram
  • mozilla
  • The Washington Post
  • The New York Times
  • Los Angeles Times
  • The Guardian
  • National Geographic
  • Discovery Channel

Nadelen van het gebruik van Django

Hieronder volgen enkele nadelen van het gebruik van Django:

  • Een enkel proces kan niet meerdere verzoeken tegelijk verwerken.
  • Django is een zeer monolithisch hul Hulpmiddel.
  • Componenten worden samen geรฏmplementeerd, wat tot verwarring kan leiden.
  • Om met Django te werken, is kennis van het volledige systeem vereist.
  • Het zorgt ervoor dat de componenten van een webapplicatie nauw met elkaar verbonden zijn.
  • Voor kleine taken moet u langdurig programmeren.

Veelgestelde vragen

Django is in de eerste plaats een backend-framework, hoewel het vaak als full-stack wordt beschreven omdat de template-laag HTML genereert. Het beheert de serverlogica, databases, routing en beveiliging, terwijl templates de presentatie voor de browser verzorgen.

Django is een compleet, volledig geรฏntegreerd framework met een ingebouwde ORM, beheerderspaneel en authenticatie. Flask is een lichtgewicht microframework dat minimalistisch blijft en voor dezelfde functionaliteiten gebruikmaakt van extensies, waardoor ontwikkelaars meer handmatige controle hebben.

Met de Django ORM, ofwel object-relationele mapper, kun je databasetabellen definiรซren als Python klassen en bevraag ze met Python Het ondersteunt code in plaats van pure SQL. PostgreSQL, MySQL, SQLiteen Oracle.

Voer in de commandoregel `python -m django โ€“version` uit, of open een bestand. Python Voer in de shell het commando `import django` uit, gevolgd door `print(django.get_version())`. Beide commando's tonen het geรฏnstalleerde Django-versienummer.

Middleware is een reeks hooks die elk verzoek en elke reactie globaal verwerkt. Django gebruikt middleware voor sessies, authenticatie, CSRF-bescherming en beveiligingsheaders. Elk van deze taken wordt uitgevoerd vรณรณr en na de uitvoering van je view.

Een werkende kennis van Python Basiskennis van webconcepten zoals HTTP, HTML en databases is vereist. Inzicht in objectgeoriรซnteerd programmeren maakt het leren van Django-modellen en klassegebaseerde weergaven veel gemakkelijker.

Ja. Django biedt machine learning-modellen vaak aan via views of het Django REST Framework, waarbij voorspellingen als API-eindpunten beschikbaar worden gesteld. Een getraind model wordt eenmaal bij het opstarten geladen en stuurt de inferentieresultaten terug naar web- of mobiele clients.

GitHub Copilot en vergelijkbare AI-assistenten vullen Django-modellen en -views automatisch aan. URL Patronen en tests kunnen een structuur bieden voor repetitieve standaardcode. Ze versnellen de ontwikkeling, hoewel de gegenereerde code altijd moet worden gecontroleerd op veiligheid en correctheid.

Vat dit bericht samen met: