Django

Django-weergaven maken?

Django-weergaven maken?
Verschillende soorten gegevens van de Django-toepassing, zoals HTML-inhoud, XML-gegevens, JSON-gegevens, afbeelding, 404-fout, enz. worden overgebracht naar de sjabloon via Django-weergave. Elke weergave is gemaakt voor een specifiek doel en is gekoppeld aan een bepaalde sjabloon. De gegevens van de weergave kunnen door de gebruiker worden gegenereerd via een HTML-formulier of vanuit de database of bedrijfslogica. Django-weergaven kunnen worden gemaakt met behulp van een methode van de python-klasse of de python-functie. De op klassen gebaseerde weergaven bevatten veel functionaliteiten in vergelijking met functiegebaseerde weergaven. Hiervoor gebruiken de meeste Django-applicaties op klassen gebaseerde weergaven om de gegevens van de Django-applicatie weer te geven. De manieren om de op functies gebaseerde weergave en op klassen gebaseerde weergave te maken, zijn uitgelegd in deze zelfstudie.

Vereisten:

Voordat u de voorbeelden van deze zelfstudie oefent, moet u de volgende taken uitvoeren:

  1. Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
  2. Een Django-project maken
  3. Voer de Django-server uit om te controleren of de server goed werkt of niet

Stel een Django-app in:

EEN. Voer de volgende opdracht uit om een ​​Django-app met de naam viewapp te maken:

$ python3 beheren.py startapp bekijkapp

B. Voer de volgende opdracht uit om de gebruiker aan te maken voor toegang tot de Django-database:. Als je de gebruiker al eerder hebt aangemaakt, sla dan dit deel over:

$ python3 beheren.py createsuperuser

C. Voeg de app-naam toe in het INSTALLED_APP-gedeelte van de instellingen.py-bestand.

INSTALLED_APPS = [

'kijkapp'
]

D. Maak een map met de naam Sjablonen binnen in de bekijkapp map en stel de Sjablonen locatie van de app in de SJABLONEN deel van de instellingen.py het dossier.

SJABLONEN = [

… .
'DIRS': ['/home/fahmida/django_pro/viewapp/templates'],
… .
,
]

Maak een eenvoudige functiegebaseerde weergave:

Open de keer bekeken.py bestand van de bekijkapp map en vervang de inhoud van dit bestand door het volgende script:. inhoudsopgave() functie wordt in het script gebruikt om de HTML-inhoud te maken die naar de browser wordt verzonden met behulp van de HttpResponse() methode. Hier wordt de huidige datum en tijd van het systeem gelezen met de vandaag() functie en de huidige datumwaarde wordt gegenereerd voordat deze naar de browser wordt verzonden.

Keer bekeken.py

# Importeer de datummodule om de huidige datum te lezen
vanaf datum/tijd importdatum
# Importeer de HttpResponse-module om gegevens van weergave naar sjabloon te verzenden
van django.http import HttpResponse
# Definieer functie om functiegebaseerde weergave te creëren
def index(verzoek):
# Lees de huidige datum
vandaag = datum.vandaag()
# Stel statische gegevens in voor de weergave
inhoud = "

Welkom bij LinuxHint

"
inhoud += "Vandaag is " + vandaag.strftime("%B") + " " + vandaag.strftime("%d") + ", " + str(vandaag.jaar) + "

"
# Verstuur de inhoud naar de browser
retour HttpResponse(inhoud)

Wijzig de inhoud van de URL's.py bestand met het volgende script. In het script, de 'Welkom/' pad is gedefinieerd om de . aan te roepen inhoudsopgave() functie die de HTML-inhoud naar het sjabloonbestand stuurt.

URL's.py

# Padmodule importeren
van django.URL-importpad
# Weergavemodule importeren
van viewapp importweergaven
# Roep indexmethode aan om de inhoud weer te geven
urlpatronen = [
# Definieer pad om de index() functie aan te roepen
pad('welkom/', weergaven.inhoudsopgave)
]

Voer de volgende URL uit vanuit de browser die de volgende uitvoer zal tonen:. Een opgemaakte koptekst en de huidige datumwaarde worden weergegeven in de uitvoer.

http://localhost:8000/welcome/

Maak een eenvoudige, op klassen gebaseerde weergave:

Maak een weergaven2.py bestand in de viewapp-map en voeg het volgende script toe:. Mijn weergave class is gedefinieerd in het script dat een methode bevat met de naam krijgen(). Een lijstvariabele met de naam lijstgegevens wordt gedeclareerd in het script om een ​​lijst van 10 willekeurige getallen te maken. De waarden van de lijst worden doorgegeven aan de sjabloon via de HttpResponse() methode wanneer deze weergave wordt aangeroepen. de willekeurige module is in het script gebruikt om een ​​willekeurig geheel getal te genereren in elke iteratie van de voor lus met behulp van de randint() functie.

weergaven2.py

# Importeer de HttpResponse-module om gegevens van weergave naar sjabloon te verzenden
van django.http import HttpResponse
# Weergavemodule importeren
van django.weergaven importeren Bekijken
# Import willekeurige module
willekeurig importeren
# Definieer klasse voor op klassen gebaseerde weergaven
klasse MyView (View):
def get(zelf, verzoek):
# Declareer de lijstvariabele
lijstgegevens = []
# Voeg het eerste element van de lijst toe
lijstgegevens.toevoegen('

De lijst van 10 willekeurige getallen is:

')
# Herhaal de lus 10 keer
voor n in bereik (10):
# Genereer een willekeurig getal binnen 1 tot 50
willekeurig_nummer = willekeurig.randint(1, 50)
# Voeg het willekeurige nummer toe aan de lijst
lijstgegevens.toevoegen (willekeurig_nummer)
# Voeg een breekelement toe aan de lijst
lijstgegevens.toevoegen('
')
# Voeg het laatste element van de lijst toe
lijstgegevens.toevoegen('
')
# Stuur de lijstwaarden naar de browser
return HttpResponse(lijstgegevens)

Wijzig de inhoud van de URL's.py bestand met het volgende script. In het script staat de “aantal/” pad is gedefinieerd om de . aan te roepen Mijn weergave.as_view() methode die de gegevens van de lijst naar het sjabloonbestand stuurt.

URL's.py

# Padmodule importeren
van django.URL-importpad
# Weergavemodule importeren
van viewapp importweergaven
# Importeer MyView-klasse
van viewapp.views2 importeer MyView
# Roep de get-methode van de MyView-klasse aan
urlpatronen = [
# Definieer pad om de index() functie aan te roepen
pad('welkom/', weergaven.inhoudsopgave),
# Definieer pad om MyView te bellen call.as_view() methode
pad('nummer/', MyView.as_view()),
]

Voer de volgende URL uit vanuit de browser die de volgende uitvoer zal tonen:. De nummers van de uitvoer worden gewijzigd als de pagina wordt vernieuwd, omdat elk nummer van de lijst willekeurig wordt gegenereerd generated.

http://localhost:8000/nummer/

Conclusie:

De uitvoer van de webtoepassing hangt af van het script van het weergavebestand dat een belangrijk onderdeel is van elke webtoepassing. Op functies gebaseerde weergaven worden meestal gebruikt in de vroege versie van de Django-app en nu worden klassengebaseerde vies in de meeste toepassingen van Django gebruikt. De manieren om beide soorten weergaven te maken, zijn in deze zelfstudie getoond om de nieuwe Django-gebruikers te helpen hun weergaven te maken op basis van hun toepassing.

Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...