tengke 发表于 2023-5-14 17:43:49

大佬麻烦看看这个


    current = current()
File "D:\软件\djangoProject\app\cs.py", line 69, in html
    print(self.quer.setlist.urlencode())
AttributeError: 'function' object has no attribute 'urlencode'
"GET /cs/?q=ddq HTTP/1.1" 500 183550报错信息

——————————————————————————


class Cs(object):
    def __init__(self, request,ss,n="",pagesize=17,page="ym",plus=5
               ):

      import copy
      quer = copy.deepcopy(request.GET)
      quer._mutable = True
      self.quer = quer

def html(self):
    pagestrlist = []
      self.quer.setlist(self.page, )
      print(self.quer.setlist.urlencode())
      pagestrlist.append('<li class="active"><a href="?ym={}">首页</a></li>'.format(1))


print(self.quer.setlist.urlencode())有问题吗

isdkz 发表于 2023-5-14 17:44:12

根据报错信息,'function' object has no attribute 'urlencode',我们可以知道问题出在self.quer.setlist上,它是一个函数而不是一个对象,因此没有urlencode属性。

在代码中,我们可以看到self.quer.setlist是一个函数,而不是一个对象。因此,我们不能使用setlist.urlencode()。相反,我们应该使用urllib.parse中的urlencode()函数来编码查询字符串。

正确的代码应该是:

from urllib.parse import urlencode

class Cs(object):
    def __init__(self, request,ss,n="",pagesize=17,page="ym",plus=5):
      import copy
      quer = copy.deepcopy(request.GET)
      quer._mutable = True
      self.quer = quer

    def html(self):
      pagestrlist = []
      self.quer.setlist(self.page, )
      print(urlencode(self.quer))
      pagestrlist.append('<li class="active"><a href="?ym={}">首页</a></li>'.format(1))


这里我们使用了urlencode()函数来编码查询字符串。注意,我们需要从urllib.parse中导入urlencode()函数。

sfqxx 发表于 2023-5-14 17:46:05

是的,代码中存在问题。

`self.quer.setlist`是一个函数对象,并没有名为`urlencode()`的属性。根据给出的代码片段,似乎你正在尝试将查询参数编码为URL编码的字符串。`urlencode()`是在`urllib.parse`模块中定义的方法。

要解决这个问题,你需要从`urllib.parse`模块导入`urlencode()`并使用它来对查询参数进行编码:


from urllib.parse import urlencode

class Cs(object):
    def __init__(self, request, ss,n="",pagesize=17,page="ym",plus=5):
      import copy
      quer = copy.deepcopy(request.GET)
      quer._mutable = True
      self.quer = quer

    def html(self):
      pagestrlist = []
      self.quer.setlist(self.page, )
      encoded_params = urlencode(self.quer)
      print(encoded_params)
      pagestrlist.append('<li class="active"><a href="?{}">首页</a></li>'.format(encoded_params))

这样可以正确地对查询参数进行编码。
页: [1]
查看完整版本: 大佬麻烦看看这个