Джанго

Як використовувати набір запитів у django

Як використовувати набір запитів у django
Зараз більшість веб-програм реалізовані з базою даних. queryset використовується в програмі Django для отримання записів шляхом фільтрування, нарізки або упорядкування таблиці бази даних без зміни вихідних даних. Модель використовувала Django для створення таблиці в базі даних. Отже, знання використання моделі в Django необхідні для розуміння використання набору запитів. Основною функцією набору запитів є ітерація записів таблиць баз даних шляхом перетворення їх у запити SQL. Його можна використовувати з командного рядка python або написавши скрипт python для відображення результатів роботи браузера. Використання набору запитів для отримання даних з таблиці бази даних різними способами було пояснено в цьому посібнику.

Передумови:

Перш ніж відпрацювати сценарій цього підручника, ви повинні виконати наступні завдання.

  1. Встановіть Django версії 3+ на Ubuntu 20+ (бажано)
  2. Створіть проект Django
  3. Запустіть сервер Django, щоб переконатися, що він працює належним чином чи ні.

Налаштування програми Django:

Виконайте наступну команду, щоб створити програму Django з іменем queryapp.

$ python3 керувати.py startapp queryapp

Виконайте наступну команду, щоб створити користувача для доступу до бази даних Django. Якщо ви створили користувача раніше, тоді вам не потрібно запускати команду.

$ python3 керувати.py створюєкористувача

Додайте назву програми в INSTALLED_APP частина налаштування.py файл.

INSTALLED_APPS = [
..
'queryapp'
]

Створіть папку з іменем шаблони всередині queryapp папку та встановіть шаблони розташування програми в ШАБЛОНИ частина налаштування.py файл.

ШАБЛОНИ = [

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

Створіть модель для таблиці бази даних:

Відкрийте моделі.py файл із queryapp і додайте наступний скрипт, щоб визначити структуру продуктів таблиці. Продукт клас визначений для створення таблиці з іменем продуктів з назва, тип, марка, і ціна поля. Ось, ім'я, тип, і торгова марка поля зберігатимуть символьні дані, а ціна поле зберігатиме цілочисельні дані.

моделі.py

# Модуль імпорту моделей
від django.моделі імпорту db
# Визначте клас для створення таблиці товарів
клас Продукт (моделі.Модель):
ім'я = моделі.CharField (макс. Довжина = 100)
тип = моделі.CharField (макс. Довжина = 30)
бренд = моделі.CharField (макс. Довжина = 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%
Пошук товару:







% за товар у списку_об'єктів%



% endfor%
Посвідчення особиІм'яБрендЦіна
товар.id товар.ім'я товар.брендstyle = "text-align: right"> $ продукт.ціна



Змінити вміст погляди.py файл із таким сценарієм. Назви моделі та шаблону визначені в ProductList клас. get_queryset () Метод класу визначений у сценарії для фільтрації даних на основі вмісту, поданого вікном пошуку шаблону. Продукт.об'єктів.всі () метод повертає всі записи файлу продуктів таблиця. запит.ОТРИМАТИ.клавіші () метод використовується в сценарії для перевірки будь-яких даних, поданих пошуковою формою. Якщо цей метод повертається правда, то запит.ОТРИМАТИ.get ('src') метод використовується для перевірки поданого значення порожнім чи ні. Якщо цей метод повертає непусте значення, тоді значення зберігатиметься у змінній, ключове слово, і він буде використовуватися для фільтрації даних на основі торгова марка і типу поля з продуктів таблиця.

погляди.py

# Імпортувати модуль ListView
від django.погляди.загальний імпорт ListView
# Імпорт модуля продукту
від .моделі імпорту продукту
# Імпорт модуля Q
від django.дб.моделі імпорту Q
# Визначте клас для запитів даних
class ProductList (ListView):
# Визначте модель
модель = Товар
# Визначте шаблон
template_name = 'productList.html '
def get_queryset (self):
# Встановіть набір запитів за замовчуванням
queryset = Product.об'єктів.всі ()
# Перевірте, чи подано значення форми чи ні
якщо сам.запит.ОТРИМАТИ.клавіші ():
# Перевірте ключове слово пошуку
якщо сам.запит.ОТРИМАТИ.get ('src') != ":
ключове слово = само.запит.ОТРИМАТИ.get ('src')
# Встановіть набір запитів на основі ключового слова пошуку
queryset = Product.об'єктів.filter (Q (бренд = ключове слово.написання великих літер ()) | Q (type = ключове слово.використовувати великі літери ()))
повернути набір запитів

Змінити вміст URL-адреси.py файл із таким сценарієм. У сценарії "searchPro/ 'шлях визначений для виклику ProductList.as_view () метод, який надішле всі дані та відфільтровані дані продуктів таблицю до файлу шаблону.

URL-адреси.py

# Імпортувати модуль адміністратора
від django.внести імпорт адміністратора
# Імпортувати шлях та включити модуль
від django.шлях імпорту URL-адрес
# Імпортувати модуль SearchE Employee
з queryapp.перегляд імпорту ProductList
urlpatterns = [
# Визначте шлях для адміністратора
path ('admin /', адміністратор.сайт.URL-адреси),
# Визначте шлях до пошуку продукту
path ('searchPro /', ProductList.as_view ()),

Додайте записи в таблицю:

Відкрийте сторінку адміністрування Django і додайте кілька записів у продуктів таблиці, щоб застосувати набір запитів тоді. Тут було вставлено п’ять записів.

Усі записи продуктів із вікном пошуку відображатимуться у браузері після виконання наступної URL-адреси.

http: // localhost: 8000 / searchPro


Усі продукти з шампунем відображаються, якщо тип продукту, 'шампунь'буде здійснено пошук у вікні пошуку.

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

Висновок:

Спосіб фільтрації даних простої таблиці бази даних за допомогою набору запитів описано в цьому посібнику. Дані можна фільтрувати різними способами. Читачі зрозуміють використання набору запитів для фільтрування або пошуку даних у браузері після прочитання цього посібника.

Як використовувати AutoKey для автоматизації ігор Linux
AutoKey - це утиліта автоматизації робочого столу для Linux та X11, запрограмована на Python 3, GTK та Qt. Використовуючи його сценарії та функціональ...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...