这一篇教程,我们继续完成商品列表的删除和价格区间查询功能。
二、完成删除商品并从列表中移除的功能
当我们点击商品列表中任意一条商品信息后方的删除按钮,都能够将该条商品信息从商品列表中删除。
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)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did181970