Django

Kuinka rakentaa Django-sivuston perushaku?

Kuinka rakentaa Django-sivuston perushaku?

Käyttäjät noutavat normaalisti minkä tahansa sivuston tietyn sisällön Google-haun kautta. Jos tämä hakuvaihtoehto on kuitenkin otettu käyttöön verkkosivustolla, käyttäjät voivat helposti löytää haluamasi sisällön sivustolta käyttämättä Google-hakua ... Toinen etu hakuvaihtoehdon lisäämisestä verkkosivustolle on, että kehittäjä voi hallita hakutulosta oikein. Tämä tarkoittaa, että hän voi hallita, mikä sivuston sisältö näkyy vai ei. Tässä opetusohjelmassa näytetään Django-sivuston perushaun toteutusprosessi.

Edellytykset:

Ennen tämän opetusohjelman komentosarjan käyttämistä sinun on suoritettava seuraavat tehtävät:

  1. Asenna Django-versio 3+ Ubuntu 20+ -käyttöjärjestelmään (mieluiten)
  2. Luo Django-projekti
  3. Suorita Django-palvelin varmistaaksesi, että palvelin toimii oikein.

Django-sovelluksen määrittäminen:

Suorita seuraava komento luoda Django-sovellus nimeltä Searchapp.

$ python3 hallita.py startapp searchapp

Suorita seuraava komento, jos haluat luoda käyttäjän Django-tietokantaan. Jos olet luonut käyttäjän aiemmin, sinun ei tarvitse suorittaa komentoa.

$ python3 hallita.py luo ylikäyttäjä

Lisää sovelluksen nimi asetusten INSTALLED_APP-osaan.py-tiedosto.

INSTALLED_APPS = [

'searchapp'
]

Luo kansio nimeltä mallipohjat searchapp-kansioon ja aseta mallin sijainti sovelluksessa mallien osassa asetuksia.py-tiedosto.

MALLIT = [

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

Luo malleja:

Muokkaa malleja.py-tiedosto seuraavalla komentosarjalla. Täällä on määritelty kaksi luokkaa luomaan kaksi relaatiotaulukkoa nimeltä kirjatyypit ja kirjat. Kirjat-taulukon tyyppikenttä on vieras avain, joka ilmestyy kirjatyyppitaulukosta.

malleja.py

# Tuo tarvittavat moduulit
alkaen django.db-tuontimallit
alkaen django.URL-osoitteiden tuonti päinvastoin
# Luo malli gor booktype
luokan Booktype (mallit.Malli):
btype = mallit.CharField (enimmäispituus = 100, ainutlaatuinen = tosi)
luokka Meta:
tilaus = ('btype',)
# Luo mallikirja
luokan kirja (mallit.Malli):
kirjan_nimi = mallit.CharField (enimmäispituus = 150)
tekijän_nimi = mallit.CharField (enimmäispituus = 150)
tyyppi = mallit.ForeignKey (Kirjatyyppi, on_delete = mallit.RYÖPYTÄ)
hinta = mallit.Kellukenttä ()
julkaisu = mallit.CharField (enimmäispituus = 100)
luokka Meta:
tilaus = ('kirjan_nimi',)
def __str __ (itse):
palaa itse.kirjan_nimi
def get_url (itse):
return reverse ('kirja_tiedot', args = [itse.id])

Luo malleja hakua varten:

Tässä opetusohjelmassa näytetyn hakuominaisuuden luomiseen tarvitaan kolme HTML-tiedostoa. Nämä ovat book_list.html, book_detail.html ja etsi.html. Book_list.html näyttää kaikki kirjat taulukon tietueista. Kirja_tiedot.html näyttää tietyn kirjan tiedot. Etsintä.html näyttää hakutuloksen lähetettyään hakulomakkeen.

book_list.html



Kirjaluettelo










% jos tyyppi% type.nimi % else% Kirjaluettelo % endif%











% x kirjassa%

x.kirjan_nimi


kirjoittanut x.tekijän_nimi


$ x.hinta




% endfor%



kirja_tiedot.html





kirja.kirjan_nimi






kirja.kirjan_nimi




Kirjoittaja: kirja.tekijän_nimi


Tyyppi: type


Julkaisu: kirja.julkaisu


Hinta: $ kirja.hinta







Hae.html



Hakutulos









% jos kysely%


% tuloksilla.lasketaan yhteensä_tuloksiksi%
Löydetty total_results tulos total_results | pluralize
% endwith%


% tulokselle c tuloksissa%

c.kirjan_nimi


c.tekijän_nimi


% tyhjä%

Ei tuloksia.


% endfor%
% loppu Jos %






Luo näkymän toiminnot:

Muokkaa näkymiä.py-tiedosto seuraavalla komentosarjalla. Skriptissä on määritelty kolme toimintoa. Book_list () -toiminto näyttää book_list.html-tiedosto. Book_detail () -toiminto näyttää kirjan_detail.html. Search () -toiminto etsii tietueita hakulomakkeen lähettämien tietojen perusteella ja näyttää tuloksen haulla.html.

näkymät.py

# Tuo tarvittavat moduulit
alkaen django.pikavalinnat tuo renderöinnin, get_object_or_404
alkaen .mallit tuovat kirjan, kirjatyypin
alkaen django.db.mallit tuovat Q
# Määritä toiminto näyttää kaikki kirjat
def book_list (pyyntö):
kirja = kirja.esineitä.kaikki()
return render (pyyntö, 'book_list.html ', ' kirja ': kirja)
# Määritä toiminto tietyn kirjan näyttämiseksi
def book_detail (pyyntö, id):
kirja = get_object_or_404 (kirja, id = id)
tyypit = Kirjatyyppi.esineitä.kaikki()
t = tyypit.get (id = kirja.tyyppi.id)
return render (pyyntö, 'book_detail.html ', ' kirja ': kirja,' tyyppi ': t.btype)
# Määritä kirjahakutoiminto
def haku (pyyntö):
tulokset = []
jos sitä pyydetään.method == "GET":
kysely = pyyntö.SAADA.get ('haku')
jos kysely == ":
kysely = Ei mitään
tulokset = kirja.esineitä.suodatin (Q (kirjan_nimi__sisältää = kysely) | Q (tekijän_nimi__sisältää = kysely) | Q (hinta_sisältää = kysely))
return render (pyyntö, 'haku.html ', ' query ': query,' results ': results)

Aseta puhelunäkymän polut:

Muokkaa URL-osoitteita.Django-projektin py-tiedosto seuraavalla komentosarjalla. Käsikirjoituksessa on määritelty neljä polkua. 'admin /' -polkua käytetään Django-hallintakeskuksen avaamiseen. Tyhjää polkua (") käytetään funktion book_list () kutsumiseen. '/ 'polkua käytetään funktion book_detail () kutsumiseen. 'Haku /' polkua käytetään hakemaan haku () -toimintoa.

URL-osoitteet.py

# Tuo hallintamoduuli
alkaen django.contrib tuonti järjestelmänvalvoja
# Tuo polkumoduuli
alkaen django.URL-osoitteiden tuontipolku
# Tuo näkymä
hakusovelluksen tuontinäkymistä
# Määritä polut
urlpatterns = [
polku ('admin /', admin.sivusto.URL-osoitteet),
polku (", näkymät.book_list, name = 'book_list'),
polku ('/', näkymät.kirjan_tiedot, nimi = 'kirjan_tiedot'),
polku ('haku /', näkymät.haku, nimi = 'haku'),
]

Suorita sovellus selaimesta:

Suorita seuraava komento Django-palvelimen suorittamiseksi.

$ python3 hallita.py juoksupalvelin

Suorita seuraava URL-osoite mistä tahansa selaimesta näyttääksesi luettelon kirjoista taulukossa.

http: // localhost: 8000

Jos käyttäjä napsauttaa linkkiä "PHP ja MySQL dynaamisille verkkosivustoille", tämän kirjan tiedot näkyvät selaimessa.

Jos käyttäjä hakee sanaa, fysiikkaa selaimessa, seuraava hakutulos näkyy selaimessa.

Päätelmä:

Django-sovellus, jolla on perushakuvaihtoehto, on otettu käyttöön tässä opetusohjelmassa tietokantataulukoiden avulla. Uudet Django-kehittäjät voivat ottaa hakutoiminnon käyttöön verkkosivustollaan tämän opetusohjelman lukemisen jälkeen.

Kuinka Xdotoolia käytetään stimuloimaan hiiren napsautuksia ja näppäilyjä Linuxissa
Xdotool on ilmainen ja avoimen lähdekoodin komentorivityökalu hiiren napsautusten ja näppäimistön simulointiin. Tässä artikkelissa käsitellään lyhyttä...
Viisi parasta ergonomista tietokonehiirtä Linux-tuotteille
Aiheuttaako pitkäaikainen tietokoneen käyttö kipua ranteessasi tai sormissasi?? Onko sinulla nivelten jäykkyys ja sinun on jatkuvasti ravistettava kät...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...