Предпоставки:
Преди да практикувате скрипта на този урок, трябва да изпълните следните задачи.
- Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
- Създайте проект на Django
- Стартирайте сървъра Django, за да проверите дали сървърът работи правилно или не.
Настройване на приложение на Django:
Изпълнете следната команда, за да създадете приложение на Django с име queryapp.
$ python3 управлява.py startapp queryappИзпълнете следната команда, за да създадете потребителя за достъп до базата данни на Django. Ако сте създавали потребителя преди, не е необходимо да изпълнявате командата.
$ python3 управлява.py създаваuperuserДобавете името на приложението в INSTALLED_APP част от настройки.py файл.
INSTALLED_APPS = [..
„queryapp“
]
Създайте папка с име шаблони вътре в queryapp папка и задайте шаблони местоположението на приложението в ШАБЛОНИ част от настройки.py файл.
ШАБЛОНИ = [.. .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
.. .
,
]
Създайте модел за таблицата на базата данни:
Отвори модели.py файл от queryapp папка и добавете следния скрипт, за да определите структурата на продукти таблици. Продукт клас е дефиниран за създаване на таблица с име продукти с име, тип, марка, и цена полета. Тук, име, тип, и марка полета ще съхранява данни за символи, а цена полето ще съхранява целочислените данни.
модели.py
# Модул за импортиране на моделиот django.db модели за импортиране
# Определете клас за създаване на таблица с продукти
клас Продукт (модели.Модел):
име = модели.CharField (max_length = 100)
тип = модели.CharField (max_length = 30)
марка = модели.CharField (max_length = 50)
цена = модели.IntegerField ()
Стартирайте макемиграции команда за създаване на нова миграция въз основа на промените, направени от моделите.
$ python3 управлява.py makemigrations queryappСтартирайте мигрират команда за изпълнение на SQL команди и създаване на всички таблици в базата данни, които са дефинирани в модели.py файл.
$ python3 управлява.py мигриратПроменете съдържанието на администратор.py файл със следното съдържание. Тук, моделите 'Клас продуктиs се регистрира с помощта на регистрирам() метод за показване на продукти таблици в таблото за управление на Django.
администратор.py
# Импортиране на администраторски модулот django.принос вноса администратор
# Импортиране на модел на продукт
от .модели внос на продукт
# Регистрирайте модел на продукта
администратор.сайт.регистриране (продукт)
Създайте файл с шаблон с име productList.html вътре в queryapp / шаблони / със следния скрипт. Този скрипт ще покаже всички данни на продукти таблица в таблична форма с поле за търсене. Потребителят ще може да търси конкретните записи от таблицата с продукти, като използва формата за търсене. за цикъл се използва в скрипта за повторение на данните, предадени от мнения.py файл.
productList.html
Урок за Django QuerySet
Търсене на продукт
документ за самоличност | Име | Марка | Цена |
---|---|---|---|
продукт.документ за самоличност | продукт.име | продукт.марка | style = "text-align: right"> $ продукт.цена |
Променете съдържанието на мнения.py файл със следния скрипт. Имената на моделите и шаблоните са дефинирани в ProductList клас. get_queryset () метод на класа е дефиниран в скрипта за филтриране на данните въз основа на съдържанието, подадено от полето за търсене на шаблона. Продукт.обекти.всичко() метод връща всички записи на продукти маса. заявка.ВЗЕМЕТЕ.бутони () метод се използва в скрипта за проверка на всички данни, подадени от формуляра за търсене. Ако този метод се върне вярно, тогава заявка.ВЗЕМЕТЕ.get ('src') метод се използва за проверка на изпратената стойност е празна или не. Ако този метод върне непразна стойност, тогава стойността ще се съхранява в променливата, ключова дума, и ще се използва за филтриране на данните въз основа на марка и Тип полета от продукти маса.
мнения.py
# Импортиране на модул ListViewот django.мнения.родово импортиране ListView
# Импортиране на модул на продукта
от .модели внос на продукт
# Импортиране на Q модул
от django.db.модели импортиране Q
# Определете клас за заявки за данни
class ProductList (ListView):
# Определете модел
модел = Продукт
# Определете шаблон
template_name = 'productList.html '
def get_queryset (самостоятелно):
# Задайте набор от заявки по подразбиране
queryset = Продукт.обекти.всичко()
# Проверете дали стойността на формуляра е изпратена или не
ако аз.заявка.ВЗЕМЕТЕ.бутони ():
# Проверете ключовата дума за търсене
ако аз.заявка.ВЗЕМЕТЕ.get ('src') != ":
ключова дума = себе си.заявка.ВЗЕМЕТЕ.get ('src')
# Задайте набор от заявки въз основа на ключова дума за търсене
queryset = Продукт.обекти.филтър (Q (марка = ключова дума.главни букви ()) | Q (type = ключова дума.изписване с главни букви ()))
връщане на набор от заявки
Променете съдържанието на URL адреси.py файл със следния скрипт. В сценария,searchPro/ 'пътят е дефиниран за извикване на ProductList.as_view () метод, който ще изпрати всички данни и филтрираните данни на продукти таблица към файла на шаблона.
URL адреси.py
# Импортиране на администраторски модулот django.принос вноса администратор
# Импортиране на път и включване на модул
от django.път за импортиране на URL адреси
# Импортиране на модул SearchEfficiee
от queryapp.изгледи импортиране на ProductList
urlpatterns = [
# Определете пътя за администратор
път ('admin /', admin.сайт.URL адреси),
# Определете пътя за търсене на продукт
path ('searchPro /', ProductList.as_view ()),
Добавете записи в таблицата:
Отворете страницата за администриране на Django и добавете някои записи в продукти таблица, за да приложите набора от заявки тогава. Тук са вмъкнати пет записа.
Всички записи на продуктите с полето за търсене ще бъдат показани в браузъра след изпълнението на следния URL адрес.
http: // localhost: 8000 / searchPro
Всички продукти за шампоан се показват, ако видът на продукта, "шампоанще бъде търсено в полето за търсене.
Млякото на прах от свежият марка ще се показва, ако марката на продукта, 'прясноще бъде търсено в полето за търсене.
Заключение:
Начинът на филтриране на данните от проста таблица на базата данни чрез използване на набор от заявки е обяснен в този урок. Данните могат да бъдат филтрирани по различни начини. Читателите ще разберат използването на набор от заявки за филтриране или търсене на данни в браузъра, след като прочетат този урок.