django列表筛选功能的实现代码

1. 筛选功能的介绍

在Web开发中,筛选功能在很多场景下都是必不可少的,比如商品列表筛选、用户列表筛选等。Django作为一款强大的Web框架,也提供了强大的筛选功能的支持。使用Django框架可以很方便地实现列表筛选功能,本文将介绍如何实现它。

2. 搭建项目

在开始实现筛选功能之前,需要先创建一个Django项目。打开终端,创建一个名为“filter_demo”的Django项目。

$ python3 -m venv venv

$ source venv/bin/activate

$ pip install django

$ django-admin startproject filter_demo

$ cd filter_demo

接着,我们创建一个名为“filter_app”的Django应用。

$ python manage.py startapp filter_app

3. 模型创建

筛选功能的实现离不开数据模型的支持,所以我们需要先创建一个数据模型来支持数据的存储。

我们创建一个名为“Person”的模型,模型包含以下字段:姓名、年龄、性别、爱好。

from django.db import models

class Person(models.Model):

name = models.CharField(max_length=20)

age = models.IntegerField()

gender = models.CharField(max_length=1, choices=(('M', 'Male'), ('F', 'Female')))

hobby = models.CharField(max_length=50)

4. 视图创建

视图是实现筛选功能的关键。Django提供了一种叫做ListView的视图,它可以帮我们快速地渲染一个对象列表,并提供一些方便的筛选功能。

我们创建一个名为“PersonListView”的类视图。它继承自Django提供的ListView视图。

from django.views.generic import ListView

from .models import Person

class PersonListView(ListView):

model = Person

template_name = 'person_list.html'

在上面的代码中,我们指定了模型和模板文件。接下来我们在templates目录下创建一个名为“person_list.html”的模板文件。

{% extends 'base.html' %}

{% block content %}

{% for person in object_list %}

{% empty %}

{% endfor %}

姓名 年龄 性别 爱好
{{ person.name }} {{ person.age }} {{ person.gender }} {{ person.hobby }}
没有符合条件的记录。

{% endblock %}

在上面的代码中,我们定义了一个表单,用于筛选数据。表单中有四个输入框,一个下拉框和一个按钮。这些输入框和下拉框都带有名称属性,以便提交时以GET请求的形式传递到后台。在模板中使用{{ request.GET.name }}这样的方式可以获取到GET请求中名为"name"的参数值。

我们在表格中通过{% for person in object_list %}循环展示数据,如果没有符合条件的记录,则显示“没有符合条件的记录”。

5. URL配置

现在我们已经创建了数据模型、视图和模板,还需要配置URL来让用户访问我们的应用。

我们首先在filter_app下创建一个名为“urls.py”的文件,并添加如下代码。

from django.urls import path

from .views import PersonListView

urlpatterns = [

path('', PersonListView.as_view(), name='person_list'),

]

在上面的代码中,我们指定了根路径返回PersonListView视图。

接着,在filter_demo项目下的urls.py文件中,指定我们创建的应用的URL。

from django.urls import include, path

urlpatterns = [

path('', include('filter_app.urls')),

]

6. 运行应用

现在我们已经完成了Django应用的所有配置,可以运行应用来测试效果了。

输入以下命令启动Django服务器。

$ python manage.py runserver

在浏览器中输入http://127.0.0.1:8000/即可访问我们的应用,并进行人员列表的筛选。

总结

筛选功能是Web应用的重要功能之一,Django提供了强大的支持,让我们可以在很短的时间内实现这一功能。在本文中,我们了解了如何利用Django的ListView视图实现人员列表的筛选功能,并了解了Django中模型、视图、模板和URL配置等方面的使用。希望这篇文章可以帮助读者更好地理解Django的各种功能和用法。

后端开发标签