用c语言编写购物车系统,05-购物车功能实现

本文详细介绍了如何使用C语言实现购物车系统,包括添加商品、编辑数量和删除商品的功能。在views.py中定义了相关函数,如添加商品到购物车时,检查购物车是否已有该商品,若有则增加数量,否则创建新的购物车记录。同时,系统支持通过Ajax请求进行操作,并返回JSON响应更新购物车商品总数。

定义views页面函数,使其可以传送数据

views.py

@islogin

def cart(request):

uid = request.session['user_id']

carts = CartInfo.objects.filter(user_id=uid)

lenn = len(carts)

context={'title':'购物车',

'page_name':1,

'carts':carts,

'len':lenn}

return render(request,'df_cart/cart.html',context)

#添加商品

@islogin

def add(request,gid,count):

#用户uid购买了gid商品,数量为count

uid=request.session['user_id']

gid = int(gid)

count = int(count)

#查询购物车是否已经有此商品,有则增加

carts = CartInfo.objects.filter(user_id=uid, goods_id=gid)

if len(carts)>=1:

cart=carts[0]

# print '*'*10

# print cart -> 购物车商品数量

cart.count=cart.count+count

else:#不存在则直接加

cart=CartInfo()

cart.user_id=uid

cart.goods_id=gid

cart.count=count

cart.save()

count_s = CartInfo.objects.filter(user_id=uid).count()

request.session['count'] = count_s

#如果是ajax请求则返回json,否则转向购物车

if request.is_ajax():

# count=CartInfo.objects.filter(user_id=request.session['user_id']).count()

print ('*'*10)

print ('ajax')

#--------------未使用

return JsonResponse({'count':count_s})

else:

return redirect('/cart/')

@islogin

def edit(request,cart_id,count):

try:

cart=CartInfo.objects.get(pk=int(cart_id))

count1=cart.count=int(count)

cart.save()

data={'ok':0}

except Exception as e:

data={'ok':count1}

return JsonResponse(data)

@islogin

def delete(request,cart_id):

# try:

cart = CartInfo.objects.get(pk=int(cart_id))

cart.delete()

# print '*'*10

# print ('delete')

# data={'ok':1}

# except Exception as e:

count = CartInfo.objects.filter(user_id=request.session['user_id']).count()

request.session['count'] = count

data={'count':count}

# print '*' * 10

# print (count)

return JsonResponse(data)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值