Django/Python - try/except问题
我有这样的代码:
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
请求。但我不能确定。