会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132906个问题

老师我由于暂时没有视频中的测试环境,用postman做测试

http://127.0.0.1:8080/login/doLogin?username=13888001001&password=001001。提示如下错误:

{

"timestamp": "2020-08-27 14:40:36",

"status": 400,

"error": "Bad Request",

"message": "Required request body is missing: public com.bjsxt.vo.AjaxResult com.bjsxt.controller.system.LoginController.login(com.bjsxt.dto.LoginBodyDto,javax.servlet.http.HttpServletRequest)",

"path": "/login/doLogin"

}


但是如果放在body中的form-data中提交,又会显示如下错误:

image.png


所以如何在postman中测试呢?


JAVA 全系列/第二十一阶段:分布式医疗云平台/系统管理前后端开发(旧) 29912楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 29915楼

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
from django.views import View

import math

from goods_app.models import *
from django.core.paginator import Paginator

class IndexView(View):
    """显示商品类别和商品列表的视图类"""

    def get(self,request,cid=2,num=1):
        # 当前类别
        currentCid = int(cid)
        # 当前页
        num = int(num)
        #1. 获取所有的商品类别信息
        categoryList = Category.objects.all().order_by('id')

        #2. 获取当前类别下所有商品信息
        goodsList = Goods.objects.filter(category_id=cid)

        #3. 添加分页功能
        # 创建分页器对象
        pageinator = Paginator(object_list=goodsList,per_page=8)
        # 获取当前页的数据
        page_obj = pageinator.page(num)

        # 获取每一页的页码数列表[begin,end]
        begin = num-int(math.ceil(10/2))
        if begin < 1:
            begin = 1
        end = begin + 9

        if end > pageinator.num_pages:
            end = pageinator.num_pages
        if end < 10:
            begin = 1
        else:
            begin = end - 9
        numList = range(begin, end+1)

        return render(request,'goods_app/index.html',{'categoryList':categoryList,'goodsList':page_obj,'currentCid':currentCid,'numList':numList,'currentNum':num})


def recommend(func):
    def _wrapper(request,goodsid,*args,**kwargs):

        # 从cookie中获取用户访问的goodid字符串
        c_goodidStr = request.COOKIES.get('recommend','')

        # 已经访问过的商品id列表   #专门存放goodsid的列表  ['1','2']  ==>   '1 2'
        goodsIdList = [gid for gid in c_goodidStr.split() if gid.strip()]

        # 已经访问过商品的对象列表
        goodsObjectList = [Goods.objects.get(id=ggid) for ggid in goodsIdList if ggid != goodsid and Goods.objects.get(id=ggid).category_id == Goods.objects.get(id=goodsid).category_id][:4]

        # 将推荐商品对象列表传递给func函数
        response = func(request,goodsid,recommendList=goodsObjectList,*args,**kwargs)

        # 判断用户访问的商品是否存在goodIdList列表中
        if goodsid in goodsIdList:
            goodsIdList.remove(goodsid)
            goodsIdList.insert(0,goodsid)
        else:
            goodsIdList.insert(0, goodsid)

        # 将用户每次访问的商品ID存放在cookie中
        response.set_cookie('recommend',''.join(goodsIdList),expires_days=3)

        return response
    return _wrapper

class DetailView(View):
    """商品详情视图类"""

    @recommend # 在不改变原来的代码下  新增猜你喜欢功能
    def get(self,request,goodsid,recommendList=[]):
        goodsid = int(goodsid)

        # 根据商品ID获取商品详情信息
        try:
            goods = Goods.objects.get(id=goodsid)
            return render(request,'goods_app/detail.html',{'goods':goods,'recommendList':recommendList})

        except Goods.DoesNotExist:
            return HttpResponse(status=404)


image.png

老师,我这个代码和视频中的一样,报了个错。怎么回事,

Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 29916楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 29917楼
JAVA 全系列/第二十一阶段:分布式医疗云平台/系统管理前后端开发(旧) 29918楼
Python 全系列/第七阶段:网页编程基础/html5 29920楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 29921楼
Python 全系列/第十四阶段:Python 爬虫开发/爬虫数据存储 29922楼
人工智能/第二阶段:人工智能基础-Python基础/Python基础语法-旧 29923楼
Python 全系列/第一阶段:Python入门/编程基本概念 29924楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 29925楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637