我正在运行以下代码; 它来自Twisted Framework的示例列表,属于Web服务器.
from twisted.web import server, resource
from twisted.internet import reactor
class HelloResource(resource.Resource):
isLeaf = True
numberRequests = 0
def render_GET(self, request):
self.numberRequests += 1
request.setHeader("content-type", "text/plain")
arg = request.args
q = arg['q']
#Added for debugging
for key, value in arg.iteritems():
print key, value
return "I am request #" + str(self.numberRequests) + " " + q[0] + "\n"
reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()
Run Code Online (Sandbox Code Playgroud)
执行:
[user@localhost pytwist]$ python twi.py
Run Code Online (Sandbox Code Playgroud)
浏览器网址:
http://localhost:8080/?q=test
Run Code Online (Sandbox Code Playgroud)
但是,我在控制台上收到以下KeyError异常:
File "twi.py", line 12, in render_GET
q = arg['q']
exceptions.KeyError: 'q'
Run Code Online (Sandbox Code Playgroud)
然而,浏览器正在给出预期的输出:
I am request #3 test
Run Code Online (Sandbox Code Playgroud)
此外,控制台正确显示代码的调试部分:
q ['af']
Run Code Online (Sandbox Code Playgroud)
如果输出正确且密钥存在正确,那么可能是什么错误?请注意,我尝试过dict.get()方法,但问题仍然存在.
这可能是因为您的浏览器发出了两个请求.第二个请求可能是favicon.ico文件,这里它不发送q参数.
尝试打印请求的URL.
有关
| 归档时间: |
|
| 查看次数: |
1783 次 |
| 最近记录: |