Hvordan lage Django -visninger?

Hvordan lage Django -visninger?
Ulike typer data fra Django -applikasjon, for eksempel HTML -innhold, XML -data, JSON -data, bilde, 404 feil, etc. overføres til malen gjennom Django View. Hver visning opprettes for et bestemt formål og assosiert med en bestemt mal. Dataene til visningen kan genereres fra brukeren gjennom HTML -skjema eller fra databasen eller forretningslogikken. Django -visninger kan opprettes ved hjelp av en metode for Python -klasse eller Python -funksjon. De klassebaserte visningene inneholder mange funksjoner sammenlignet med funksjonsbaserte visninger. For dette bruker de fleste av Django-applikasjonene klassebaserte visninger for å representere dataene fra Django-applikasjonen. Måtene å lage den funksjonsbaserte visningen og klassebasert visning er blitt forklart i denne opplæringen.

Forutsetninger:

Før du øver på eksemplene på denne opplæringen, må du fullføre følgende oppgaver:

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django -prosjekt
  3. Kjør Django -serveren for å sjekke om serveren fungerer som den skal eller ikke

Sett opp en Django -app:

EN. For å opprette en Django -app som heter ViewApp, kjør følgende kommando:

$ Python3 Administrer.PY StartApp ViewApp

B. For å opprette brukeren for tilgang til Django -databasen, kjører du følgende kommando. Hvis du har opprettet brukeren før, hopp over denne delen:

$ Python3 Administrer.Py CreateSuperuser

C. Legg til appnavnet i den installerte_app -delen av innstillingene.py -fil.

Installert_apps = [
..
'ViewApp'
]

D. Opprett en mappe som heter Maler inne i ViewApp mappe og angi malens Plasseringen av appen i Maler del av Innstillinger.py fil.

Maler = [

.. .
'Dirs': ['/home/fahmida/django_pro/viewapp/maler'],
.. .
,
]

Lag en enkel funksjonsbasert visning:

Åpne utsikt.py fil fra ViewApp mappe og erstatt innholdet i denne filen med følgende skript. indeks () Funksjon brukes i skriptet for å lage HTML -innholdet som vil bli sendt til nettleseren ved hjelp av HttpResponse () metode. Her blir gjeldende dato og tid for systemet lest ved hjelp av i dag () Funksjon og gjeldende datoverdi vil bli generert før du sender til nettleseren.

Utsikt.py

# Importer datamodulen for å lese gjeldende dato
Fra Datetime Import Dato
# Importer HttpResponse -modulen for å sende data fra visning til mal
Fra Django.HTTP Importer HttpResponse
# Definer funksjon for å lage funksjonsbasert visning
def indeks (forespørsel):
# Les gjeldende dato
I dag = dato.i dag()
# Angi statiske data for visningen
innhold = "

Velkommen til Linuxhint

""
innhold + = "i dag er" + i dag.strftime ("%b") + "" + i dag.StrfTime ("%D") + "," + Str (i dag.år) + "

""
# Sendte innholdet til nettleseren
Returner HttpResponse (innhold)

Endre innholdet i URLS.py fil med følgende skript. I manuset, 'Velkommen/' banen er definert for å ringe indeks () Funksjon som sender HTML -innholdet til malfilen.

URLS.py

# Importer banemodul
Fra Django.URLS importerer bane
# Importer visningsmodul
Fra ViewApp importvisninger
# Ringindeksmetode for å vise innholdet
urlpatterns = [
# Definere bane for å ringe indeks () -funksjonen
bane ('velkomst/', visninger.indeks)
]

Kjør følgende URL fra nettleseren som viser følgende utdata. En formatert overskriftstekst og gjeldende datoverdi vises i utgangen.

http: // localhost: 8000/velkommen/

Lag en enkel klassebasert visning:

Lage en Visninger2.py fil inne i ViewApp -mappen og legg til følgende skript. Mitt syn Klasse er definert i skriptet som inneholder en metode som heter få(). En listevariabel som heter ListData er erklært i skriptet for å lage en liste med 10 tilfeldige tall. Verdiene på listen vil bli sendt til malen gjennom HttpResponse () Metode når dette synet kalles. det tilfeldige Modul har blitt brukt i skriptet for å generere et tilfeldig heltallnummer i hver iterasjon av til sløyfe ved hjelp av Randint () funksjon.

Visninger2.py

# Importer HttpResponse -modulen for å sende data fra visning til mal
Fra Django.HTTP Importer HttpResponse
# Importer visningsmodul
Fra Django.Visninger Importvisning
# Importer tilfeldig modul
importere tilfeldig
# Definer klasse for klassebaserte visninger
Klasse MyView (Vis):
def get (selv, forespørsel):
# Erklære listevariabelen
listData = []
# Legg til det første elementet på listen
ListData.Legg til ('

Han liste over 10 tilfeldige tall er:

')
# Itererer sløyfen i 10 ganger
for n i rekkevidde (10):
# Generer et tilfeldig tall innen 1 til 50
Random_number = Random.Randint (1, 50)
# Legg til det tilfeldige nummeret på listen
ListData.vedlegg (random_number)
# Legg til et bruddelement på listen
ListData.Legg til ('
')
# Legg til det siste elementet på listen
ListData.vedlegg ('')
# Send listeverdiene til nettleseren
Returner HttpResponse (ListData)

Endre innholdet i URLS.py fil med følgende skript. I manuset, "Antall/”Bane er definert for å ringe Mitt syn.as_view () Metode som vil sende dataene til listen til malfilen.

URLS.py

# Importer banemodul
Fra Django.URLS importerer bane
# Importer visningsmodul
Fra ViewApp importvisninger
# Importer myView -klasse
Fra ViewApp.Visninger2 Importer MyView
# Ring get -metoden i MyView Class
urlpatterns = [
# Definere bane for å ringe indeks () -funksjonen
bane ('velkomst/', visninger.indeks),
# Definere banen for å ringe myview.as_view () metode
bane ('nummer/', myview.as_view ()),
]

Kjør følgende URL fra nettleseren som viser følgende utdata. Antallet på utgangen vil bli endret hvis siden er oppdatert fordi hvert nummer på listen vil bli generert tilfeldig.

http: // localhost: 8000/nummer/

Konklusjon:

Utgangen fra webapplikasjonen avhenger av skriptet til visningsfilen som er en viktig del av alle webapplikasjoner. Funksjonsbaserte visninger brukes mest i den tidlige versjonen av Django-appen, og nå brukes klassebaserte VIE-er i de fleste applikasjoner av Django. Måtene å lage begge typer visninger er vist i denne opplæringen for å hjelpe de nye Django -brukerne med å lage sine visninger basert på applikasjonen deres.