好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Django2:Web项目开发入门笔记(11)

这一篇教程,我们继续完成商品列表的删除和价格区间查询功能。

二、完成删除商品并从列表中移除的功能

当我们点击商品列表中任意一条商品信息后方的删除按钮,都能够将该条商品信息从商品列表中删除。

1、模板中添加JavaScript脚本代码

示例代码:

$('button.delete').click(function () {
    var name = $(this).attr('id');
    $.getJSON("/del/", {'goods_name': name}, function (result) {
        if (result === 200) {
            location.reload()
        }
    })
});

在上方代码中,第一行的语句表示这是一个页面中所有“class”属性为“delete”的“botton”标签,在被点击(click)时,执行的脚本函数(function)。

第二句代码是创建了一个变量,获取当前(this)被点击标签的“id”属性值(attr)。

当获取到当前被点击按钮的“id”属性值(还记得吗?是商品名称),就可以通过“getJSON()”向服务器发起请求。

2、配置URL分发

示例代码:

path('del/', siteviews.delete),

3、定义视图函数

示例代码:

def delete(request):
    goods_name = request.GET['goods_name']
    goods = Goods.objects.filter(goods_name=goods_name)
    try:
        goods.delete()
        result = 200
    except:
        result = 100
    return HttpResponse(result)

三、完成价格区间查询功能

当我们输入查询商品的最小价格和最大价格,点击确定按钮之后,页面中展示筛选后的商品列表。

1、定义视图函数

为了更好理解视图和JS之间数据的传输,我们先来完成视图函数的定义。

示例代码:

from django.core import serializers
def search(request):
    min_price = int(request.GET['min_price'])
    max_price = int(request.GET['max_price'])
    goods = Goods.objects.filter(goods_price__gte=min_price, goods_price__lte=max_price)
    try:
        if goods:
            result = json.dumps(serializers.serialize('json', goods))
        else:
            result = 100
    except:
        result = 100
    print(result)
    return HttpResponse(result)

在上方代码中,我们依据最小价格和最大价格进行数据库查询,如果未查询到结果或者发生异常,都返回错误的编号,否则返回一个经过序列化和格式化的结果。

 

查看更多关于Django2:Web项目开发入门笔记(11)的详细内容...

  阅读:21次