Django功能

291 阅读2分钟

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")