Forutsetninger:
Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver.
EN. Installer Django versjon 3+ på Ubuntu 20+ (helst)
B. Lag et Django-prosjekt
C. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.
Konfigurer en Django-app:
EN. Kjør følgende kommando for å opprette en Django-app med navnet databaseapp.
$ python3 administrere.py startapp databaseappB. Kjør følgende kommando for å opprette brukeren for tilgang til Django-databasen. Hvis du har fullført brukeren før, trenger du ikke å kjøre kommandoen.
$ python3 administrere.py skaperbrukerC. Legg til appnavnet i INSTALLERT_APP del av innstillingene.py-fil.
INSTALLED_APPS = [..
'valideringapp'
]
D. Opprett en mappe med navnet maler inne i databaseapp mappen og still inn malens plasseringen av appen i MALER del av innstillinger.py fil.
MALER = [.. .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
.. .
,
]
Designmodell med standard- og nullattributter:
Endre modeller.py fil med følgende skript for å lage en tabell med navnet Produkter som inneholder fire felt uten id-feltet. Disse navn, pris, produksjonsdato og utløpsdato. Verdien av null attributt er satt til True for alle felt. Verdien av det blanke attributt er satt til True for alle felt også. Dette betyr at brukeren kan holde feltene tomme før de sender inn skjemaet som skal bruke denne modellen. De misligholde attributtverdi er satt for pris, produksjonsdato og utløpsdato.
modeller.py
# Importer modeller-modulenfra django.db import modeller
# Lag klasse for å definere strukturen til lærertabellen
klasse Produkt (modeller.Modell):
navn = modeller.CharField (max_length = 50, null = True, blank = True)
pris = modeller.IntegerField (null = True, default = ", blank = True)
produksjonsdato = modeller.DateField (null = True, standard = '0000-00-00', blank = True)
expire_date = modeller.DateField (null = True, standard = '0000-00-00', blank = True)
Kjør følgende overføringskommandoer for å lage de nødvendige migreringsfilene og SQLite-databasens databasetabell.
$ python3 administrere.py makemigrations databaseapp$ python3 administrere.py migrere
Datainnføring ved hjelp av Django Administration Dashboard:
Endre innholdet i administratoren.py filen med følgende skript for å registrere modellen i databasen.
admin.py
Endre nettadresser.py fil med følgende skript for å definere banen for å åpne Django Administrative Dashboard.
nettadresser.py
# Importer administrasjonsmodulfra django.bidrag importadministrator
# Importer banemodul
fra django.URL-adresse for import
# Definer sti for kunde og admin
urlpatterns = [
sti ('admin /', admin.nettstedet.nettadresser)
]
Kjør nå Django-serveren og gå til Django Administrative Dashboard ved å bruke følgende URL.
http: // localhist: 8000 / admin
åpne skjemaet for produktinnføring ved å klikke Legg til produkt. Hvis brukeren sender inn skjemaet uten å sette inn data, vises følgende utdata i nettleseren. Her viser to datofelt feil fordi standardverdien for datofeltet ikke er i et gyldig format.
Følgende utdata vises etter at gyldige datodata er lagt til. Her, den pris feltet er tomt for bruk av standardattributtet.
Datainnføring ved hjelp av malen:
Måten å sette inn data i Produkter tabellen ved hjelp av HTML-skjema er vist i denne delen. Her vil skjemaelementene bli generert basert på modellen som ble opprettet tidligere.
skjemaer.py
# Importer skjemamodulfra django importskjemaer
# Importer kundemodell
fra dbapp.modeller importerer produkt
# Definer klassen for kundeskjemaet
klasse ProductForm (skjemaer.ModelForm):
klasse Meta:
modell = Produkt
felt = '__all__'
Opprett HTML-filen med navnet produkt.html inne i maler mappen til appen med følgende skript. Skjemadataene sendes inn når brukeren klikker på Lagre knapp.
produkt.html
Kundens inngangsskjema
Endre utsikt.py filen med følgende skript for å sette inn data i Produkter tabellen etter validering av skjemaet. Legg til produkt () funksjon er definert i skriptet for å sjekke at skjemaet er sendt inn eller ikke, og hvis skjemaet sendes inn, vil det sjekke skjemadataene er gyldige eller ugyldige. Hvis er gyldig() funksjonen returnerer ekte, deretter blir dataene satt inn i Produkter tabellen, og en suksessmelding vises i nettleseren.
utsikt.py
# Importer HttpResponse-modulfra django.http.svar import HttpResponse
# Importer gjengivelsesmodul
fra django.snarveier import gjengis
# Importer ProductForm
fra dbapp.skjemaer importerer ProductForm
# Definer funksjon for å legge til produktoppføring
def AddProduct (forespørsel):
hvis forespørsel.metode == "POST":
form = ProductForm (forespørsel.POST)
# Hvis skjemadataene er gyldige eller ikke
hvis skjema.er gyldig():
prøve:
# Lagre skjemadataene i databasen
skjema.lagre()
# Definer meldingen for brukeren
data = ['
Produktet er lagt til.
']# Returner svaret
returner HttpResponse (data)
unntatt:
sende
ellers:
# Definer skjemaobjektet
form = ProductForm ()
# Vis produktoppføringsskjemaet
return render (forespørsel, 'produkt.html ', ' form ': form)
Endre nettadresser.py fil med følgende skript for å definere banen for å ringe visningsfunksjonen.
nettadresser.py
# Importer administrasjonsmodulfra django.bidrag importadministrator
# Importer banemodul
fra django.URL-adresse for import
# Importer visning
fra dbapp-importvisninger
# Definer sti for kunde og admin
urlpatterns = [
sti (", visninger.AddProduct),
sti ('admin /', admin.nettstedet.nettadresser)
]
Kjør nå Django-serveren og åpne basis-URL i nettleseren.
http: // lokalhistorisk: 8000 /
Følgende skjema vises.
Følgende ValueError vises hvis brukeren sender inn skjemaet uten å legge til data i skjemaet. Her, den pris feltet er et helt tall som ikke kan være den tomme strengen.
Hvis brukeren skriver inn gyldige data som skjemaet nedenfor og trykker på Lagre knappen, vil en ny produktregistrering bli satt inn i databasen.
Følgende bilde vises hvis du åpner den nylig innsatte posten fra Django Dashboard.
Konklusjon:
En modell er designet ved å bruke null- og standardattributter i denne opplæringen. Deretter har måtene å sette inn data i disse feltene i back-end og front-end vist her for å hjelpe leseren å vite bruken av standard- og null-attributter i Django-databasen.