Vereisten:
Voordat u de voorbeelden van deze zelfstudie oefent, moet u de volgende taken uitvoeren:
- Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
- Een Django-project maken
- 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 bekijkappB. 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 createsuperuserC. 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 lezenvanaf 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 importerenvan 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 verzendenvan 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 importerenvan 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.