Django/Python - try/except问题

0 投票
5 回答
2002 浏览
提问于 2025-04-15 17:56

我有这样的代码:

try:
            var = request.POST['var']                                        
except NameError:                
            var = ''

为什么在“except”后面的代码总是会执行?即使request.POST['var']存在的时候。

5 个回答

1

在你的情况下,下面的代码会有什么结果呢?

except NameError, e:
    print e
2

别再猜来猜去了,把NameError换成像KeyboardInterrupt这样的错误信息。看看错误追踪信息,你就能清楚地知道问题出在哪里。

8

你怎么知道它在执行呢?也许 request.POST['var'] 也是 ''(空字符串),所以你无法分辨出有什么不同。

另外,只有在

var = request.POST['var'] 

的情况下,才会出现 NameError,这意味着 request 这个东西不存在。

如果 request.POST 不存在,那就说明 POST 这个属性在 request 里没有,所以会出现 AttributeError。而如果 request.POST['var'] 不存在,那就说明 'var' 这个键在 request.POST 里没有,所以会出现 KeyError


编辑:

我猜测你可能没有发送 POST 请求。但我不能确定。

撰写回答