Представление списка - представления на основе функций Django
Представление списка относится к представлению (логике) для перечисления всех или отдельных экземпляров таблицы из базы данных в определенном порядке. Он используется для отображения нескольких типов данных на одной странице или для просмотра, например, продуктов на странице электронной коммерции. Django предоставляет необычную поддержку для представлений списков, но давайте проверим, как это делается вручную с помощью представления на основе функций. Эта статья посвящена представлению списка, в котором используются такие концепции, как Django Forms, Django Models.
Для представления списка нам нужен проект с некоторыми моделями и несколькими экземплярами, которые будут отображаться.
Представление списка Django - представления на основе функций
Иллюстрация того, как создать и использовать представление списка на примере. Рассмотрим проект под названием geeksforgeeks, в котором есть приложение под названием geeks.
Refer to the following articles to check how to create a project and an app in Django.
- How to Create a Basic Project using MVT in Django?
- How to Create an App in Django ?
After you have a project and an app, let’s create a model of which we will be creating instances through our view. In geeks/models.py,
Python3
# import the standard Django Model # from built-in library from django.db import models # declare a new model with a name "GeeksModel" class GeeksModel(models.Model): # fields of the model title = models.CharField(max_length = 200 ) description = models.TextField() # renames the instances of the model # with their title name def __str__( self ): return self .title |
После создания этой модели нам нужно запустить две команды, чтобы создать для нее базу данных.
Python manage.py makemigrations Python manage.py migrate
Теперь давайте создадим несколько экземпляров этой модели с помощью оболочки, запустим форму bash,
Оболочка Python manage.py
Введите следующие команды
>>> из geeks.models импортировать GeeksModel >>> GeeksModel.objects.create ( title = "title1", description = "description1"). save () >>> GeeksModel.objects.create ( title = "title2", description = "description2"). save () >>> GeeksModel.objects.create ( title = "title2", description = "description2"). save ()
Теперь у нас все готово для бэкенда. Убедитесь, что instnaces были созданы с http: // localhost: 8000 / admin / geeks / geeksmodel /
Let’s create a view and template for the same. In geeks/views.py,
Python3
from django.shortcuts import render # relative import of forms from .models import GeeksModel def list_view(request): # dictionary for initial data with # field names as keys context = {} # add the dictionary during initialization context[ "dataset" ] = GeeksModel.objects. all () return render(request, "list_view.html" , context) |
Create a template in templates/list_view.html,
html
< div class = "main" > {% for data in dataset %}. {{ data.title }}< br /> {{ data.description }}< br /> < hr /> {% endfor %} </ div > |
Проверим, что есть на http: // localhost: 8000 /
Bingo..!! list view is working fine. One can also display filtered items or order them in different orders based on various features. Let’s order the items in reverse manner.
In geeks/views.py,
Python3
from django.shortcuts import render # relative import of models from .models import GeeksModel def list_view(request): # dictionary for initial data with # field names as keys context = {} # add the dictionary during initialization context[ "dataset" ] = GeeksModel.objects. all ().order_by( "-id" ) return render(request, "list_view.html" , context) |
order_by to arrange instances in different orders
Теперь посетите http: // localhost: 8000 /
фильтр для отображения выборочных экземпляров
Давайте создадим другой экземпляр, чтобы показать, как работает фильтр. Запустить
Оболочка Python manage.py
Теперь создайте еще один экземпляр,
из geeks.models импортировать GeeksModel GeeksModel.objects.create (title = "Naveen", description = "GFG is Best"). Save ()
Теперь посетите http: // localhost: 8000 /
Let’s filter this data to those containing word “title” in their title.
In geeks/views.py,
Python3
from django.shortcuts import render # relative import of forms from .models import GeeksModel def list_view(request): # dictionary for initial data with # field names as keys context = {} # add the dictionary during initialization context[ "dataset" ] = GeeksModel.objects. all (). filter ( title__icontains = "title" ) return render(request, "list_view.html" , context) |
Теперь снова зайдите на http: // localhost: 8000 /,
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.