Utvikle en sterk forståelse av rollene og funksjonene til prosjekter og apper innenfor Django-rammeverket.
I Django kan du bruke to primære komponenter for å lage en webapplikasjon; apper og prosjekter. Utviklere bruker noen ganger disse begrepene om hverandre, selv om de har distinkte betydninger og funksjoner i Django-nettverket.
Forstå Django-prosjekter
I Django er et prosjekt en beholder på toppnivå for nettapplikasjonen din. Et prosjekt inneholder konfigurasjonene for nettapplikasjonen din og én eller flere apper, som hver gir et spesifikt sett med funksjoner eller funksjoner for nettapplikasjonen din. Den inneholder også komponenter som deles mellom de forskjellige appene. I et Django-prosjekt kan du finne verktøy og verktøy som gjør det enkelt å administrere nettapplikasjonen din, for eksempel Django-kommandolinjeverktøyet og Django-utviklingsserveren.
Komponenter av et Django-prosjekt
Et Django-prosjekt inneholder vanligvis forskjellige apper og nettapplikasjonens konfigurasjoner. Når du oppretter et nytt prosjekt, genererer Django automatisk filer som inneholder disse konfigurasjonene. Komponentene som inngår i et Django-prosjekt er:
- Innstillinger: Innstillingsmodulen inneholder konfigurasjoner som trengs for prosjektet ditt og de individuelle appene i prosjektet. Denne modulen inneholder først og fremst konfigurasjonsalternativer som databasetilkobling, mellomvare, installert app, tillatte verter og andre konfigurasjoner som trengs for at nettappen din skal fungere.
- URL-er: URL-modulen definerer et URL-mønster for applikasjonen din. Hvert URL-mønster i prosjektet ditt kan enten tilordnes et annet URL-mønster i appen din eller direkte til en visningsfunksjon som håndterer forespørselen om den spesifikke URL-en. Enten URL-mønsteret tilordnes en visningsfunksjon eller et annet URL-mønster i appen din, er det endelige målet å tilordne det til en visning som håndterer forespørselen effektivt.
- WSGI: WSGI-modulen (Web Server Gateway Interface) er Python-standarden for webservere og applikasjoner. WSGI-modulen gjør det mulig for Django å kjøre på ulike servere.
- ASGI: ASGI-modulen (Asynchronous Server Gateway Interface) håndterer asynkrone forespørsler som f.eks WebSockets-tilkoblinger. ASGI er en standard for asynkrone webservere for å kommunisere med Python-nettapplikasjoner.
- Andre komponenter: Noen ganger vil du bli bedt om å legge til dine egne komponenter til Django-prosjektet ditt, avhengig av applikasjonens krav. Disse komponentene inkluderer statiske filer, maler, mediefiler og tilpassede administrasjonskommandoer.
Hvordan lage et Django-prosjekt
For å lage et Django-prosjekt, bør du bruke django-admin kommandolinjeverktøy. Du kan lage ditt Django-prosjekt ved å følge disse trinnene:
- I kommandolinjegrensesnittet, naviger til katalogen der du vil opprette Django-prosjektet.
- Installer Django med pip-pakkebehandleren.
pip installer django
- Skriv inn følgende kommando og kjør den:
django-admin startprosjekt
Kommandoen ovenfor vil opprette en katalog som dette:
Du vil legge merke til en redundans i navnene på prosjektkatalogen, dvs. at prosjektnavnet ditt vises to ganger. Ønsker du å bli kvitt dette kan du legge til en periode når du kjører din starte prosjektet kommando som dette:
django-admin startprosjekt .
Nå vil prosjektstrukturen din se slik ut:
Med trinnene ovenfor må du ha opprettet et Django-prosjekt. De manage.py fil opprettet i prosjektet ditt er viktig for å samhandle med Django-prosjektet ditt.
Forstå en Django-app
Hensikten med en app er å gi Django-prosjektet spesifikk funksjonalitet. En app hjelper deg med å organisere kodebasen din ved å dele opp prosjektets funksjoner i mindre komponenter.
For eksempel, i et bloggprosjekt vil du ha en app dedikert til autentisering og autorisasjon og en annen dedikert til blogginnlegg. Du kan lage flere apper basert på prosjektets spesifikke behov.
Komponenter i en Django-app
En Django-app består av moduler relatert til prosjektet, dvs. til en spesifikk funksjon på nettstedet ditt. Som med et prosjekt, genererer Django automatisk nyttige filer når du oppretter en app. Filene generert av Django inkluderer følgende:
- views.py: Denne filen vil inneholde all logikken som er nødvendig for å motta forespørsler og sende svar. Den bestemmer også hvilken HTML-mal som skal gjengis basert på brukerens handlinger på nettstedet ditt.
- models.py: Denne modulen etablerer datastrukturen til appen din og bestemmer hvordan databasen skal lagre den. Den bruker Djangos ORM (Object-Relational Mapping) for å definere dataene. Modellens komponent definerer forskjellig databaserelasjoner i Django.
- admin.py: Administrasjonsmodulen definerer administrasjonsgrensesnittet til Django-appen din. Du bør registrere modellene dine i admin-filen. Hvis du trenger ytterligere administrasjonsfunksjoner utover de som tilbys av Django, kan du definere tilpassede visninger for administrasjonsgrensesnittet i denne modulen.
- urls.py: Denne filen definerer URL-mønstrene eller -rutene som er unike for en bestemt Django-app. Noen ganger genererer ikke Django denne filen automatisk. Hvis dette skjer, kan du opprette det manuelt i appkatalogen din.
Django genererer noen andre komponenter, som f.eks apps.py og tests.py. Disse filene definerer appkonfigurasjonene dine og lar deg skrive henholdsvis enhetstester.
Hvordan lage en Django-app
Før du oppretter en app, må du ha opprettet et prosjekt. Etter at du har opprettet prosjektet, naviger til katalogen som inneholder manage.py fil og kjør følgende kommando i terminalen din:
python manage.py startproject
Kommandoen ovenfor vil opprette en mappestruktur som denne på samme katalognivå som prosjektet ditt:
Forskjellen mellom en app og et prosjekt i Django
Det er noen tydelige forskjeller mellom et prosjekt og en app i Django. Noen av dem er listet opp nedenfor.
Kode Gjenbrukbarhet
I Django er en app en gjenbrukbar komponent i nettapplikasjonen din. Dette betyr at hvis du har en app som håndterer brukerautentisering for ett prosjekt, kan du gjenbruke den samme appen i et annet prosjekt med små eller ingen endringer. Et prosjekt er derimot ikke gjenbrukbart. Når du har opprettet et prosjekt for en bestemt nettapplikasjon, kan du ikke bruke den til en annen applikasjon.
Driftsomfang
Et prosjekt opererer på et høyere nivå enn en app fordi det er ansvarlig for nettstedets generelle konfigurasjon og administrasjon. På den annen side er en app bare ansvarlig for en bestemt funksjon eller funksjonalitet på nettstedet ditt.
Mappestruktur
Den mest åpenbare forskjellen mellom en app og et prosjekt er mappestrukturene deres. Et prosjekt inkluderer vanligvis innstillinger og andre konfigurasjonsfiler som er ansvarlige for nettstedets velvære.
En app følger Djangos MVT-arkitektur. Den inneholder bare filer og konfigurasjoner som er ansvarlige for trivselen til en bestemt funksjon på nettstedet ditt.
Prosjektet ditt og appen jobber sammen for å skape en god nettapplikasjon
Selv om prosjektet og appen din har sin egenart, brukes de til slutt for å gi deg en sømløs opplevelse når du bygger applikasjonen din. Du bør kunne kombinere både prosjekt- og appkomponentene for å bygge og tilpasse nettapplikasjonen din. Med appen og prosjektet på plass, kan du begynne å bygge nettstedet ditt med Django.