Представление списка - представления на основе функций Django

Опубликовано: 24 Февраля, 2022

Представление списка относится к представлению (логике) для перечисления всех или отдельных экземпляров таблицы из базы данных в определенном порядке. Он используется для отображения нескольких типов данных на одной странице или для просмотра, например, продуктов на странице электронной коммерции. 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.