Python

Kuidas luua Django vormi?

Kuidas luua Django vormi?
Vormi kasutamine on iga veebirakenduse oluline osa. Veebisaidi kasutajate sisendi saab võtta vormi abil. See võib sisaldada erinevat tüüpi välju, näiteks tekstikast, liitkast, märkeruut, raadionupp jne. kasutajatelt andmete võtmiseks. Django raamistik sisaldab suurt hulka raamatukogusid, mis aitavad veebiarendajal kujundada HTML-vorm kasutajalt sisendi saamiseks, sisendi töötlemiseks ja kasutaja sisendile reageerimiseks.

Kuidas HTML-vormi abil saab kasutajalt andmeid võtta, sisendväärtusi lugeda ja Django abil brauseris väärtusi printida, on näidatud selles õpetuses.

Eeldused:

Enne Django vormi loomist peate looma Django projekti. Uue Django projekti loomiseks ja projekti kausta minemiseks käivitage järgmised käsud:

$ django-admin algusprojekt django_pro
$ cd django_pro

Vajalike failide loomiseks ja projektile migreerimiste rakendamiseks käivitage järgmine käsk:

$ python3 hallata.py rännata

Kui soovite kontrollida, kas Django server töötab korralikult või mitte, käivitage järgmine käsk:

$ python3 hallata.py töötaberver

Selle loomiseks formapp all django_pro projekti käivitage järgmine käsk:

$ python3 hallata.py startapp formapp

HTML-vormingu loomine Django abil:

Ava vaated.py sees olev fail formapp kausta ja muutke selle sisu järgmise sisuga. Järgmine skript kontrollib, kas vorm on esitatud või mitte. Kui vorm esitatakse, siis vormi väärtus taotlus.meetod saab POST ja taotlus.POSTITA.saada () meetodit kasutatakse selle esitatud väärtuste lugemiseks. The on kehtiv() funktsioon kontrollib, kas vormi andmed on õiged või mitte. Kui see funktsioon tagastab tõene, siis brauserisse prinditakse edukateade koos kehtivate kasutajaandmetega, vastasel juhul kuvatakse vormi konkreetsele väljale ilmunud tõrketeade. Peale selle on renderdama () meetodit kasutatakse vormi laadimiseks brauserisse ja HttpResponse () meetodit kasutatakse vastuse saatmiseks serverist brauserisse pärast vormi esitamist.

# Impordi vajalikud moodulid
alates django.otseteed impordi renderdamine
alates formapp.vormide importimine StudentForm
alates django.http import HttpResponse
def form_request (taotlus):
# Kontrollige, kas vorm on esitatud või mitte
soovi korral.meetod == 'POST':
õpilane = StudentForm (taotlus.POSTITAMINE)
# Kontrollige, kas vormi andmed on õiged või mitte
kui õpilane.on kehtiv():
# Lugege esitatud väärtusi
nimi = taotlus.POSTITA.hankima ("nimi")
email = taotlus.POSTITA.hankima ("e-post")
kasutajanimi = taotlus.POSTITA.get ("kasutajanimi")
# Ühendage väärtused
data = ['Teie registreerimine on edukalt lõpule viidud.
"," Nimi: ", nimi,"
',' Email: ', email,'
',' Kasutajanimi: ', kasutajanimi]
# Tagastage vastusena vormi väärtused
tagastage HttpResponse (andmed)
muu:
# Kuva HTML-vorming
õpilane = StudentForm ()
tagastage renderdus (taotlus, vorm.html ", 'vorm': õpilane)

Loo vormid.py sees formapp kausta ja lisage järgmine sisu. Järgmine skript loob nelja välja vormi. The nimi väli on määratud märkide andmete võtmiseks ja see võib olla 40 tähemärki pikk. The e-post väli on määratud võtma mis tahes kehtiva e-posti aadressi, kasutades märgi andmeid ja see võib olla 50 tähemärki. The kasutajanimi väli on määratud tähemärkide andmete võtmiseks ja see võib olla 20 tähemärki pikk. The parool väli on määratud tähemärkide andmete võtmiseks ja see võib olla vähemalt 10 tähemärki ja maksimaalselt 20 tähemärki pikk. The vormid.Parooli sisestamine vidinat kasutatakse paroolivälja jaoks paroolivälja sisu peitmiseks.

# Impordi vormimoodulid
django impordivormidelt
# Vormiväljade määratlemiseks looge klass
klassi StudentForm (vormid.Vorm):
nimi = vormid.CharField (silt = "Täisnimi", max_pikkus = 40)
email = vormid.EmailField (silt = "E-post", max_length = 50)
kasutajanimi = vormid.CharField (silt = "Kasutajanimi", max_pikkus = 20)
parool = vormid.CharField (silt = "Parool", min_length = 10, max_length = 20, vidin = vormid.Parooli sisestamine)

Looge kaust nimega mallid sees formapp kausta. Mine MALLID jaotis seaded.py fail ja määrake faili asukoht mall kaust DIRS vara.

seaded.py

MALLID = [

'DIRS': ['/ home / fahmida / django_pro / formapp / templates']
,
]

Loo vormis.HTML sees mall järgmise sisuga kaust.

% csrf_token% kasutatakse HTML-skriptis CSRF-i (saidiüleste taotluste võltsingute) rünnakute vältimiseks. vorm.as_p laadib Django vormi, mille on välja töötanud vormid.py faili. Kui Esita nupu vajutamisel edastatakse vormi andmed serverisse.





Kasutaja registreerimisvorm



% csrf_token%
vorm.as_p



Ava URL-id.py alates django_pro kausta ja muutke sisu järgmise sisuga.

Siin, 'Registreeri/' teed kasutatakse vormi brauserisse laadimiseks.

# Impordi vajalikud moodulid
alates django.URL-ide importimise tee
formapp-i impordivaadetest
# Vormi kuvamiseks helistamismeetod
urlpatterns = [
tee ('register /', vaated.vorm_request)
]

Kasutaja registreerimisvormi brauserisse laadimiseks avage mis tahes brauser ja tippige järgmine URL.

http: // localhost: 8000 / register

Järgmine väljund ilmub pärast URL-i käivitamist. Pärast vormi esitamist kontrollitakse tühja välja, nime-, e-posti- ja parooliväljade maksimaalse pikkuse väärtuse ning paroolivälja minimaalse ja maksimaalse pikkuse valideerimist.

Järgmine väljund näitab, et parooliväli on vale. Vormi kohaselt peab parooli väärtuse pikkus olema 10 kuni 20 tähemärki. 5 märki on sisestatud järgmisel kujul. Selleks näitab vorm tõrketeadet.

Pärast kehtiva väljundi sisestamist vormi igale väljale kuvatakse järgmine väljund.

Järeldus:

Selles õpetuses on näidatud Django rakenduses väga lihtsa kasutaja registreerimisvormi loomise viis. Djangol on vormi erinevat tüüpi väljade loomiseks palju meetodeid, näiteks CharField (), EmailField (), TextFiled jne. Vormi kinnitamise ülesanne muutub väga lihtsaks, kui vormi kujundab Django vorm.

Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...