Vereisten:
Voordat u het script van deze tutorial oefent, moet u de volgende taken uitvoeren:.
EEN. Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
B. Een Django-project maken
C. Voer de Django-server uit om te controleren of de server correct werkt of niet.
Een Django-app instellen:
EEN. Voer de volgende opdracht uit om een Django-app met de naam te maken databaseapp.
$ python3 beheren.py startapp databaseappB. Voer de volgende opdracht uit om de gebruiker te maken voor toegang tot de Django-database:. Als u de gebruiker eerder hebt voltooid, hoeft u de opdracht niet uit te voeren.
$ python3 beheren.py createsuperuserC. Voeg de app-naam toe aan de INSTALLED_APP onderdeel van de instellingen.py-bestand.
INSTALLED_APPS = […
'validatieapp'
]
D. Maak een map met de naam Sjablonen binnen in de databaseapp 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/databaseapp/templates'],
… .
,
]
Ontwerpmodel met standaard- en null-attributen:
Wijzig de modellen.py bestand met het volgende script om een tabel met de naam . te maken producten die vier velden zal bevatten zonder het id-veld. Deze namen, prijs, fabricagedatum en vervaldatum. De waarde van de nul attribuut is ingesteld op True voor alle velden. De waarde van de blanco attribuut is ook ingesteld op True voor alle velden. Dit betekent dat de gebruiker de velden leeg kan laten voordat hij het formulier indient dat dit model zal gebruiken. De standaard kenmerkwaarde is ingesteld voor de prijs, fabricagedatum en vervaldatum expire.
modellen.py
# Importeer modellen modulevan django.db-importmodellen
# Maak een klas om de structuur van de lerarentabel te definiëren
klasse Product (modellen).Model):
naam = modellen.CharField(max_length=50, null=True, blank=True)
prijs = modellen.IntegerField(null=True, default=", blank=True)
fabricagedatum = modellen.DateField(null=True, default='0000-00-00', blank=True)
verlopen_datum = modellen.DateField(null=True, default='0000-00-00', blank=True)
Voer de volgende migratieopdrachten uit om de benodigde migratiebestanden en de databasetabel van de SQLite-database te maken:.
$ python3 beheren.py makemigrations database-app$ python3 beheren.py migreren
Gegevens invoegen met behulp van Django Administration Dashboard:
Wijzig de inhoud van de beheerder.py bestand met het volgende script om het model in de database te registreren:.
beheerder.py
Wijzig de URL's.py bestand met het volgende script om het pad te definiëren om het Django-beheerdashboard te openen.
URL's.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Padmodule importeren
van django.URL-importpad
# Definieer pad voor klant en beheerder
urlpatronen = [
pad('admin/', beheerder.website.URL's)
]
Voer nu de Django-server uit en ga naar het Django-beheerdashboard met behulp van de volgende URL:.
http://localhist:8000/admin
open het productinvoerformulier door te klikken op Product toevoegen. Als de gebruiker het formulier indient zonder gegevens in te voeren, verschijnt de volgende uitvoer in de browser:. Hier vertonen twee datumvelden fouten omdat de standaardwaarde van het datumveld geen geldig formaat heeft.
De volgende uitvoer verschijnt na het toevoegen van de geldige datumgegevens:. Hier de prijs veld is leeg voor gebruik van het standaardkenmerk.
Gegevens invoegen met behulp van de sjabloon:
De manier om gegevens in te voegen in de producten tabel met HTML-formulier is getoond in deze sectie. Hier worden de formulierelementen gegenereerd op basis van het eerder gemaakte model.
formulieren.py
# Formulierenmodule importerenvan django importformulieren
# Klantmodel importeren
van dbapp.modellen importeren Product:
# Definieer de klasse voor het klantformulier
klasse ProductForm (formulieren).Modelformulier):
klasse Meta:
model = product
velden = '__all__'
Maak het HTML-bestand met de naam Product.html binnen in de Sjablonen map van de app met het volgende script. De formuliergegevens worden verzonden wanneer de gebruiker op de . klikt Sparen knop.
Product.html
Invoerformulier klant
Wijzig de keer bekeken.py bestand met het volgende script om gegevens in te voegen in de producten tabel na validatie van het formulier. Product toevoegen() functie is gedefinieerd in het script om te controleren of het formulier is ingediend of niet, en als het formulier is ingediend, zal het controleren of de formuliergegevens geldig of ongeldig zijn. Als is geldig() functie retourneert waar, dan worden de gegevens ingevoegd in de producten tabel, en een succesbericht wordt weergegeven in de browser.
keer bekeken.py
# Import HttpResponse-modulevan django.http.reactie importeren HttpResponse
# Importeer rendermodule
van django.sneltoetsen import render
# Productformulier importeren
van dbapp.formulieren importeren ProductForm
# Definieer functie om productinvoer toe te voegen
def Product toevoegen(verzoek):
indien verzoek.methode == "POST":
formulier = ProductForm(verzoek).POST)
# Als de formuliergegevens geldig zijn of niet
als vorm.is geldig():
proberen:
# Sla de formuliergegevens op in de database
het formulier.sparen()
# Definieer het bericht voor de gebruiker
gegevens = ['
Het product toegevoegd.
']# Retourneer het antwoord
retour HttpResponse(data)
behalve:
voorbij lopen
anders:
# Definieer het formulierobject
formulier = ProductForm()
# Toon het productinvoerformulier
return render(verzoek, 'product'.html', 'formulier': formulier)
Wijzig de URL's.py bestand met het volgende script om het pad te definiëren om de weergavefunctie aan te roepen.
URL's.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Padmodule importeren
van django.URL-importpad
# Weergave importeren
van dbapp importweergaven
# Definieer pad voor klant en beheerder
urlpatronen = [
pad(", weergaven.Product toevoegen),
pad('admin/', beheerder.website.URL's)
]
Voer nu de Django-server uit en open de basis-URL in de browser.
http://localhist:8000/
Het volgende formulier verschijnt.
Het volgende WaardeFout verschijnt als de gebruiker het formulier indient zonder gegevens in het formulier toe te voegen. Hier de prijs veld is een geheel getal dat niet de lege tekenreeks kan zijn.
Als de gebruiker de geldige gegevens invoert zoals het onderstaande formulier en op de . drukt Sparen knop, wordt een nieuw productrecord in de database ingevoegd.
De volgende afbeelding verschijnt als u het nieuw ingevoegde record opent vanuit het Django-dashboard.
Conclusie:
Er is een model ontworpen met behulp van null- en standaardattributen in deze zelfstudie. Vervolgens zijn de manieren om gegevens in deze velden in te voegen in de back-end en de front-end hier getoond om de lezer te helpen het gebruik van standaard- en null-attributen in de Django-database te leren kennen.