Udvikle en stærk forståelse af roller og funktioner af projekter og apps inden for Django-rammen.

I Django kan du bruge to primære komponenter til at oprette en webapplikation; apps og projekter. Udviklere bruger nogle gange disse udtryk i flæng, selvom de har forskellige betydninger og funktioner i Django-webrammerne.

Forståelse af Django-projekter

I Django er et projekt en container på øverste niveau til din webapplikation. Et projekt indeholder konfigurationerne for din webapplikation og en eller flere apps, der hver især giver et specifikt sæt funktioner eller funktioner til din webapplikation. Den indeholder også komponenter, der deles mellem dens forskellige apps. I et Django-projekt kan du finde værktøjer og hjælpeprogrammer, der gør det nemt at administrere din webapplikation, såsom Django-kommandolinjeværktøjet og Django-udviklingsserveren.

Komponenter af et Django-projekt

Et Django-projekt indeholder typisk forskellige apps og din webapplikations konfigurationer. Når du opretter et nyt projekt, genererer Django automatisk filer, der indeholder disse konfigurationer. Komponenterne i et Django-projekt er:

instagram viewer

  1. Indstillinger: Indstillingsmodulet indeholder de nødvendige konfigurationer til dit projekt og de enkelte apps i dit projekt. Dette modul indeholder primært konfigurationsmuligheder såsom databaseforbindelsen, middleware, installeret app, tilladte værter og andre konfigurationer, der er nødvendige for, at din webapp kan fungere.
  2. URL'er: URL-modulet definerer et URL-mønster for din applikation. Hvert URL-mønster i dit projekt kan enten knyttes til et andet URL-mønster i din app eller direkte til en visningsfunktion, der håndterer anmodningen om den specifikke URL. Uanset om URL-mønsteret er knyttet til en visningsfunktion eller et andet URL-mønster i din app, er det ultimative mål at knytte det til en visning, der håndterer anmodningen effektivt.
  3. WSGI: WSGI-modulet (Web Server Gateway Interface) er Python-standarden for webservere og applikationer. WSGI-modulet gør det muligt for Django at køre på forskellige servere.
  4. ASGI: ASGI (Asynchronous Server Gateway Interface) modulet håndterer asynkrone anmodninger som f.eks WebSockets-forbindelser. ASGI er en standard for asynkrone webservere til at kommunikere med Python-webapplikationer.
  5. Andre komponenter: Nogle gange vil du blive bedt om at tilføje dine egne komponenter til dit Django-projekt, afhængigt af din applikations krav. Disse komponenter omfatter statiske filer, skabeloner, mediefiler og brugerdefinerede administrationskommandoer.

Sådan opretter du et Django-projekt

For at oprette et Django-projekt skal du bruge django-admin kommandolinjeværktøj. Du kan oprette dit Django-projekt ved at følge disse trin:

  1. I din kommandolinje-grænseflade skal du navigere til den mappe, hvor du vil oprette dit Django-projekt.
  2. Installer Django med pip-pakkehåndteringen.
    pip installer django
  3. Skriv følgende kommando og kør den:
    django-admin startprojekt 

Ovenstående kommando vil oprette en mappe som denne:

Du vil bemærke en redundans i navnene på din projektmappe, dvs. dit projektnavn vises to gange. Hvis du vil slippe for dette, kan du tilføje en periode, når du kører din startprojekt kommando som denne:

django-admin startprojekt  .

Nu vil din projektstruktur se sådan ud:

Med ovenstående trin skal du have oprettet et Django-projekt. Det administrere.py fil oprettet i dit projekt er vigtig for at interagere med dit Django-projekt.

Forstå en Django-app

Formålet med en app er at give dit Django-projekt specifik funktionalitet. En app hjælper dig med at organisere din kodebase ved at opdele dit projekts funktionaliteter i mindre komponenter.

For eksempel vil du i et blogprojekt have en app dedikeret til godkendelse og godkendelse og en anden dedikeret til blogindlæg. Du kan oprette flere apps baseret på dit projekts specifikke behov.

Komponenter i en Django-app

En Django-app består af moduler relateret til projektet, dvs. til en specifik funktion på din hjemmeside. Ligesom med et projekt, genererer Django automatisk nyttige filer, når du opretter en app. Filerne genereret af Django inkluderer følgende:

  1. views.py: Denne fil vil indeholde al den logik, der er nødvendig for at modtage anmodninger og sende svar. Det bestemmer også, hvilken HTML-skabelon der skal gengives baseret på brugerens handlinger på dit websted.
  2. models.py: Dette modul etablerer datastrukturen for din app og bestemmer, hvordan databasen gemmer den. Den bruger Djangos ORM (Object-Relational Mapping) til at definere dataene. Modellens komponent definerer forskellige databaserelationer i Django.
  3. admin.py: Admin-modulet definerer administrationsgrænsefladen for din Django-app. Du bør registrere dine modeller i admin-filen. Hvis du har brug for yderligere admin-funktioner ud over dem, der leveres af Django, kan du definere brugerdefinerede visninger til din admin-grænseflade i dette modul.
  4. urls.py: Denne fil definerer URL-mønstre eller ruter, der er unikke for en bestemt Django-app. Nogle gange genererer Django ikke automatisk denne fil. Hvis dette sker, kan du oprette det manuelt i din app-mappe.

Django genererer nogle andre komponenter, som f.eks apps.py og tests.py. Disse filer definerer dine app-konfigurationer og lader dig skrive enhedstests.

Sådan opretter du en Django-app

Før du opretter en app, skal du have oprettet et projekt. Når du har oprettet dit projekt, skal du navigere til den mappe, der indeholder administrere.py fil og kør følgende kommando i din terminal:

python manage.py startproject 

Ovenstående kommando vil oprette en mappestruktur som denne i samme mappeniveau som dit projekt:

Forskellen mellem en app og et projekt i Django

Der er nogle tydelige forskelle mellem et projekt og en app i Django. Nogle af dem er anført nedenfor.

Kode Genanvendelighed

I Django er en app en genanvendelig komponent i din webapplikation. Det betyder, at hvis du har en app, der håndterer brugergodkendelse for et projekt, kan du genbruge den samme app i et andet projekt med få eller ingen ændringer. Et projekt er derimod ikke genanvendeligt. Når du først har oprettet et projekt til en bestemt webapplikation, kan du ikke bruge det til en anden applikation.

Driftsomfang

Et projekt fungerer på et højere niveau end en app, fordi det er ansvarligt for din hjemmesides overordnede konfiguration og administration. På den anden side er en app kun ansvarlig for en bestemt funktion eller funktionalitet på din hjemmeside.

Mappestruktur

Den mest åbenlyse forskel mellem en app og et projekt er deres mappestrukturer. Et projekt inkluderer typisk indstillinger og andre konfigurationsfiler, der er ansvarlige for dit websteds velvære.

En app følger Djangos MVT-arkitektur. Den indeholder kun filer og konfigurationer, der er ansvarlige for velbefindende for en bestemt funktion på dit websted.

Dit projekt og din app arbejder sammen om at skabe en god webapplikation

Selvom dit projekt og din app har deres unikke karakter, bruges de i sidste ende til at give dig en problemfri oplevelse, når du bygger din applikation. Du skal være i stand til at kombinere både projekt- og appkomponenterne for at bygge og tilpasse din webapplikation. Med din app og dit projekt på plads, kan du begynde at bygge din hjemmeside med Django.