Джанго

Как да изградите основно търсене за сайт на Django?

Как да изградите основно търсене за сайт на Django?

Определено съдържание на всеки сайт обикновено се извлича от потребителите чрез търсене с Google. Ако обаче тази опция за търсене е внедрена на уебсайта, потребителите могат лесно да намерят желаното съдържание в сайта, без да използват търсене с Google ... Друго предимство на добавянето на опция за търсене в уебсайт е, че разработчикът може да управлява резултатите от търсенето правилно. Това означава, че той може да контролира кое съдържание на сайта ще се появи или не. Този урок ще покаже процеса на внедряване на основното търсене в сайта на Django.

Предпоставки:

Преди да практикувате скрипта на този урок, трябва да изпълните следните задачи:

  1. Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
  2. Създайте проект на Django
  3. Стартирайте сървъра Django, за да проверите дали сървърът работи правилно или не.

Настройване на приложение Django:

Изпълнете следната команда, за да създадете приложение на Django на име searchapp.

$ python3 управлява.py startapp търсене

Изпълнете следната команда, за да създадете потребителя за достъп до базата данни на Django. Ако сте създали потребителя преди това, не е необходимо да изпълнявате командата.

$ python3 управлява.py създаваuperuser

Добавете името на приложението в частта INSTALLED_APP на настройките.py файл.

INSTALLED_APPS = [
..
„търсене“
]

Създайте папка с име шаблони в папката searchchapp и задайте местоположението на шаблона на приложението в частта TEMPLATES на настройките.py файл.

ШАБЛОНИ = [

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

Създаване на модели:

Модифицирайте моделите.py файл със следния скрипт. Тук са определени два класа за създаване на две релационни таблици, наречени типове книги и книги. Полето тип на таблицата с книги е външен ключ, който ще се появи от таблицата с типове книги.

модели.py

# Импортирайте необходимите модули
от django.db модели за импортиране
от django.обратното импортиране на URL адреси
# Създаване на модел gor booktype
клас Booktype (модели.Модел):
btype = модели.CharField (max_length = 100, уникален = True)
клас Meta:
подреждане = ('btype',)
# Създаване на модел gor книга
клас Книга (модели.Модел):
book_name = модели.CharField (max_length = 150)
автор_име = модели.CharField (max_length = 150)
тип = модели.ForeignKey (Тип на книгата, on_delete = модели.КАСКАДА)
цена = модели.FloatField ()
публикация = модели.CharField (max_length = 100)
клас Meta:
подреждане = ('име_на книга')
def __str __ (самостоятелно):
върни себе си.име_на книга
def get_url (самостоятелно):
връщане обратно ('book_detail', args = [самостоятелно.документ за самоличност])

Създайте шаблони за търсене:

Три HTML файла са необходими, за да създадете функцията за търсене, показана в този урок. Това са book_list.html, book_detail.html и търсене.html. Списъкът с книги.html ще покаже всички записи от таблицата с книги. Подробности за книгата.html ще покаже подробностите за определена книга. Търсенето.html ще покаже резултата от търсенето след изпращане на формуляра за търсене.

book_list.html



Списък с книги










% if type% type.name % else% Списък на книгите % endif%











% за x в книга%

х.име_на книга


от x.име_на автора


$ x.цена




% endfor%



подробно за книга.html





Книга.име_на книга






Книга.име_на книга




Автор: книга.име_на автора


Тип: type


Публикация: книга.публикация


Цена: $ книга.цена







Търсене.html



Резултат от търсенето









% ако заявка%


% с резултати.брои като общо_резултати%
Намерен total_results резултат total_results | pluralize
% endwith%


% за c в резултатите%

° С.име_на книга


° С.име_на автора


% празно%

Няма намерени резултати.


% endfor%
% endif%






Създаване на функции за изглед:

Променете изгледите.py файл със следния скрипт. В скрипта са дефинирани три функции. Функцията book_list () ще покаже book_list.html файл. Функцията book_detail () ще покаже book_detail.html. Функцията search () ще търси записите въз основа на данните, подадени от формуляра за търсене, и ще покаже резултата в търсенето.html.

мнения.py

# Импортирайте необходимите модули
от django.преки пътища импортиране на визуализация, get_object_or_404
от .модели импортират Book, Booktype
от django.db.модели импортиране Q
# Определете функцията за показване на всички книги
def book_list (заявка):
book = книга.обекти.всичко()
return render (заявка, 'book_list.html ', ' book ': book)
# Определете функцията за показване на конкретната книга
def book_detail (заявка, id):
book = get_object_or_404 (Book, id = id)
типове = Тип на книгата.обекти.всичко()
t = типове.get (id = книга.Тип.документ за самоличност)
return render (заявка, 'book_detail.html ', ' book ': book,' type ': t.btype)
# Определете функцията за търсене на книга
def търсене (заявка):
резултати = []
при поискване.метод == "ВЗЕМЕТЕ":
заявка = заявка.ВЗЕМЕТЕ.get ('търсене')
ако заявка == ":
query = 'Няма'
резултати = книга.обекти.филтър (Q (име_на_ книга_съдържа = заявка) | Q (име_автор_име_съдържа = заявка) |
return render (заявка, 'търсене.html ', ' заявка ': заявка,' резултати ': резултати)

Задайте пътища за функции за изглед на повиквания:

Променете URL адресите.py на проекта Django със следния скрипт. В скрипта са дефинирани четири пътя. "admin /" път се използва за отваряне на административното табло за управление на Django. Празният път (") се използва за извикване на функцията book_list (). '/ 'път се използва за извикване на функцията book_detail (). 'search /' път се използва за извикване на функцията search ().

URL адреси.py

# Импортиране на администраторски модул
от django.принос вноса администратор
# Модул за импортиране на път
от django.път за импортиране на URL адреси
# Импортиране на изглед
от изгледи за импортиране на searchchapp
# Определете пътища
urlpatterns = [
път ('admin /', admin.сайт.URL адреси),
път (", изгледи.book_list, name = 'book_list'),
path ('/', изгледи.book_detail, name = 'book_detail'),
path ('търсене /', изгледи.търсене, име = 'търсене'),
]

Стартирайте приложението от браузъра:

Изпълнете следната команда, за да стартирате Django сървър.

$ python3 управлява.py runserver

Изпълнете следния URL от всеки браузър, за да покажете списъка с книгите от таблицата.

http: // localhost: 8000

Ако потребителят щракне върху връзката „PHP и MySQL за динамични уеб сайтове“, тогава подробностите за тази книга ще се появят в браузъра.

Ако потребителят търси думата, физиката в браузъра, следният резултат от търсенето ще се покаже в браузъра.

Заключение:

Приложението Django с основната опция за търсене е внедрено в този урок с помощта на таблици на базата данни. Новите разработчици на Django ще могат да внедрят функцията за търсене в своя уебсайт, след като прочетат този урок.

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...