Джанго

Как да използвам queryset в django

Как да използвам queryset в django
Повечето уеб приложения се изпълняват с базата данни сега. queryset се използва в приложението Django за извличане на записи чрез филтриране или нарязване или подреждане на таблицата на базата данни, без да се променят оригиналните данни. Моделът използва Django за създаване на таблицата в базата данни. И така, знанията за използване на модела в Django са необходими, за да се разбере използването на набора от заявки. Основната функция на набора от заявки е да повтори записите на таблиците на базата данни, като ги преобразува в SQL заявки. Може да се използва от командния ред на python или чрез писане на python скрипта за показване на изхода на браузъра. Използването на queryset за извличане на данни от таблица на базата данни по различни начини е обяснено в този урок.

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

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

  1. Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
  2. Създайте проект на Django
  3. Стартирайте сървъра 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



<br>Урок за Django QuerySet<br>



Търсене на продукт



% csrf_token%
Търсене на продукт:







% за продукт в object_list%



% endfor%
документ за самоличностИмеМаркаЦена
продукт.документ за самоличност продукт.име продукт.марка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


Всички продукти за шампоан се показват, ако видът на продукта, "шампоанще бъде търсено в полето за търсене.

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

Заключение:

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

HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...