Джанго

Как использовать QuerySet в django

Как использовать QuerySet в django
Большинство веб-приложений теперь реализовано с базой данных. queryset используется в приложении Django для извлечения записей путем фильтрации, нарезки или упорядочивания таблицы базы данных без изменения исходных данных. Модель использовала Django для создания таблицы в базе данных. Итак, знание использования модели в Django необходимо для понимания использования набора запросов. Основная функция набора запросов - перебирать записи таблиц базы данных путем преобразования их в запросы SQL. Его можно использовать из командной строки python или написав скрипт python для отображения вывода браузера. Использование набора запросов для получения данных из таблицы базы данных различными способами было объяснено в этом руководстве.

Предпосылки:

Перед тем, как практиковать сценарий этого руководства, вам необходимо выполнить следующие задачи.

  1. Установите Django версии 3+ на Ubuntu 20+ (желательно)
  2. Создайте проект Django
  3. Запустите сервер Django, чтобы проверить, работает ли сервер правильно или нет.

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

Выполните следующую команду, чтобы создать приложение Django с именем queryapp.

$ python3 manage.py startapp queryapp

Выполните следующую команду, чтобы создать пользователя для доступа к базе данных Django. Если вы уже создавали пользователя раньше, то вам не нужно запускать команду.

$ python3 manage.py создает суперпользователя

Добавьте название приложения в INSTALLED_APP часть настройки.ру файл.

INSTALLED_APPS = [

'queryapp'
]

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

ШАБЛОНЫ = [

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

Создайте модель для таблицы базы данных:

Открой модели.ру файл из queryapp папку и добавьте следующий скрипт, чтобы определить структуру продукты столы. Продукт класс определен для создания таблицы с именем продукты с участием название, тип, марка, а также цена поля. Здесь, имя, тип, а также марка поля будут хранить символьные данные, а цена поле будет хранить целочисленные данные.

модели.ру

# Модуль импорта моделей
из джанго.модели импорта БД
# Определить класс для создания таблицы товаров
класс Продукт (модели.Модель):
имя = модели.CharField (max_length = 100)
type = модели.CharField (max_length = 30)
марка = модели.CharField (max_length = 50)
цена = модели.IntegerField ()

Запустить миграция команда для создания новой миграции на основе изменений, внесенных моделями.

$ python3 manage.py makemigrations queryapp

Запустить мигрировать команда для выполнения команд SQL и создания всех таблиц в базе данных, которые определены в модели.ру файл.

$ python3 manage.Py migrate

Измените содержимое админ.ру файл со следующим содержанием. Здесь, Классы продукции моделейs регистрируется с помощью регистр() метод отображения продукты таблицы на панели администрирования Django.

админ.ру

# Импортировать админ-модуль
из джанго.contrib import admin
# Импортировать модель продукта
из .модели импорт продукции
# Зарегистрируйте модель продукта
админ.сайт.зарегистрироваться (Продукт)

Создайте файл шаблона с именем список продуктов.html внутри queryapp / templates / со следующим сценарием. Этот скрипт отобразит все данные продукты таблица в табличной форме с полем поиска. Пользователь сможет искать определенные записи из таблицы товаров с помощью формы поиска. для цикл используется в скрипте для итерации данных, передаваемых из взгляды.ру файл.

список продуктов.html



<br>Учебное пособие по Django QuerySet<br>



Поиск продукта



% csrf_token%
Поиск продукта:







% для продукта в object_list%



% endfor%
Я БЫИмяМаркаЦена
продукт.я бы продукт.название продукт.brandstyle = "text-align: right"> $ product.цена



Измените содержимое взгляды.ру файл со следующим скриптом. Имена модели и шаблона определены в Список продуктов класс. get_queryset () метод класса определен в скрипте для фильтрации данных на основе содержимого, представленного полем поиска шаблона. Продукт.объекты.все() метод возвращает все записи продукты Таблица. запрос.ПОЛУЧАТЬ.ключи () используется в скрипте для проверки любых данных, отправленных формой поиска. Если этот метод возвращает правда, затем запрос.ПОЛУЧАТЬ.получить ('src') используется для проверки того, что отправленное значение пусто или нет. Если этот метод возвращает непустое значение, то значение будет сохранено в переменной, ключевое слово, и он будет использоваться для фильтрации данных на основе марка а также тип поля из продукты Таблица.

взгляды.ру

# Импортировать модуль ListView
из джанго.взгляды.общий импорт ListView
# Импортировать модуль продукта
из .модели импорт продукции
# Импортировать модуль Q
из джанго.db.модели импорт Q
# Определить класс для запроса данных
класс ProductList (ListView):
# Определить модель
model = Продукт
# Определить шаблон
template_name = 'productList.html '
def get_queryset (сам):
# Установить набор запросов по умолчанию
queryset = Продукт.объекты.все()
# Проверяем, отправлено ли значение формы или нет
если я.запрос.ПОЛУЧАТЬ.ключи ():
# Проверить ключевое слово поиска
если я.запрос.ПОЛУЧАТЬ.получить ('src') !знак равно
ключевое слово = себя.запрос.ПОЛУЧАТЬ.получить ('src')
# Установите набор запросов на основе ключевого слова поиска
queryset = Продукт.объекты.фильтр (Q (бренд = ключевое слово.capitalize ()) | Q (type = ключевое слово.капитализировать ()))
вернуть набор запросов

Измените содержимое URL-адреса.ру файл со следующим скриптом. В сценарии 'searchPro/ 'путь определен для вызова Список продуктов.as_view () метод, который отправит все данные и отфильтрованные данные продукты таблица в файл шаблона.

URL-адреса.ру

# Импортировать админ-модуль
из джанго.contrib import admin
# Импортировать путь и включить модуль
из джанго.путь импорта URL
# Импортировать модуль SearchEmployee
из queryapp.просмотры импорт ProductList
urlpatterns = [
# Определить путь для администратора
путь ('админ /', админ.сайт.URL-адреса),
# Определить путь к поиску товара
путь ('searchPro /', Список продуктов.as_view ()),

Добавьте записи в таблицу:

Откройте страницу администрирования Django и добавьте несколько записей в продукты таблица для применения набора запросов, затем. Здесь вставлено пять записей.

Все записи продуктов с полем поиска будут отображаться в браузере после выполнения следующего URL.

http: // локальный: 8000 / searchPro


Все шампуни отображаются, если тип продукта:шампунь'будет выполняться поиск в поле поиска.

Сухие молочные продукты свежий марка будет отображаться, если марка продукта, 'свежий'будет выполняться поиск в поле поиска.

Заключение:

В этом руководстве объясняется способ фильтрации данных простой таблицы базы данных с помощью набора запросов. Данные можно фильтровать разными способами. Читатели поймут использование набора запросов для фильтрации или поиска данных в браузере после прочтения этого руководства.

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...