Django功能
1、注册功能
def register(request):
"""注册"""
if request.method == "GET":
return render(request, "ft/bootstrap_register.html")
else:
# 获取参数
name = request.POST.get("user_name")
password = request.POST.get("user_pwd")
email = request.POST.get("user_email")
# 判断
if not all([name, password, email]):
return HttpResponse("数据不能为空")
# 创建对象
buyer = Buyer()
# 赋值属性
buyer.name = name
buyer.password = encryption_md5(password)
buyer.email = email
# 保存
buyer.save()
# 重定向
return redirect("/login/")
2、登录功能
def login(request):
"""登录"""
if request.method == "GET":
return render(request, "ft/bootstrap_login.html")
else:
# 获取参数
name = request.POST.get("user_name")
password = request.POST.get("user_pwd")
# 判断
if not all([name, password]):
return HttpResponse("数据不能为空")
# 查询
buyer = Buyer.objects.filter(name=name, password=encryption_md5(password)).first()
# 判读
if buyer:
# 保存session
request.session["buyer_logined"] = name
# 重定向首页
return redirect("/")
else:
# 重定向登录页
return redirect("/login/")
3、登出功能
def logout(request):
"""登出"""
# 清空session
request.session.clear()
# 重定向
return redirect("/login/")
4、新增功能
@buer_login_verify
def user_center_address_add(request):
"""用户中心-地址新增"""
# 获取当前用户
buyer = Buyer.objects.filter(name=request.session.get("buyer_logined")).first()
# 判断请求post表示地址新增
if request.method == "POST":
# 接收参数
name = request.POST.get("name")
address = request.POST.get("address")
postcode = request.POST.get("postcode")
phone = request.POST.get("phone")
# 判断
if not all([name, address, postcode, phone]):
return HttpResponse("数据不能为空")
# 创建对象
receiver = Receiver()
# 属性赋值
receiver.name = name
receiver.address = address
receiver.phone = phone
receiver.postcode = postcode
receiver.buyer = buyer
# 修改地址为默认,当前新增地址为默认,其他地址改为非默认
Receiver.objects.update(isdefault=0) # 修改所有地址的isdefault=0
receiver.isdefault = 1 # 修改当前新增地址isdefault=1
# 保存
receiver.save()
# 重定向用户中心页
return redirect("/user/center/")
5、编辑功能
@buer_login_verify
def user_center_address_edit(request):
"""用户中心-地址编辑"""
# 获取当前用户
buyer = Buyer.objects.filter(name=request.session.get("buyer_logined")).first()
# 判断
if request.method == "GET":
# 获取参数
id = request.GET.get("id")
# 查询
receiver = Receiver.objects.get(pk=id)
# 渲染
return render(request, "ft/edit-address.html", locals())
else:
# 接收参数
id = request.POST.get("id")
name = request.POST.get("name")
address = request.POST.get("address")
postcode = request.POST.get("postcode")
phone = request.POST.get("phone")
# 查询对象
receiver = Receiver.objects.get(pk=id)
# 修改属性
receiver.name = name
receiver.address = address
receiver.postcode = postcode
receiver.phone = phone
# 保存
receiver.save()
# 重定向
return redirect("/user/center/")
6、详情功能
def goods_detail(request):
"""商品详情页"""
# 接收参数
id = request.GET.get("id")
# 查询对象
goods = Goods.objects.get(id=id)
# 查询当前类型下的前2个产品
goods_list = Goods.objects.filter(goodstype=goods.goodstype).order_by("-id")[:2]
# 渲染
return render(request, "ft/detail.html", locals())
7、删除功能
@buer_login_verify
def delete_goods(request):
"""删除商品"""
# 获取参数
goods_id = request.GET.get("goods_id")
# 根据id查找对象
goods = Goods.objects.get(id=goods_id)
# 删除
goods.delete()
# 重定向
return redirect("/store/goods/list")