我想用这样的网址发送GET请求“/ api / stats?ad_ids = 1,2,3& start_time = 2013-09-01& end_time = 2013-10-01”但我不知道如何将我的课程安装到此网址。 我使用cherrypy mount方法和MethodDispatcher。 到目前为止,我设法从这个url api / stats / 1调用GET方法。
我还应该将哪些参数传递给GET方法?
我非常感谢任何建议或评论?
以下是代码示例:
cherrypy.tree.mount(
Ads(), '/api/stats',
{'/':
{'request.dispatch': cherrypy.dispatch.MethodDispatcher()}
}
)
def GET(self,ad_id=None,*args, **kwargs):
jsonData1={}
jsonData = self.readData()
counter2 = 0
for item in jsonData:
index = jsonData[item][2]
if index==ad_id:
jsonData1[counter2] = jsonData[item]
counter2 += 1
print jsonData1
return ('Here is the stat %s')%(jsonData1)
提前谢谢!
BR,
莫米尔布拉
答案 0 :(得分:2)
可以使用GET方法的关键字参数访问查询字符串。
使用您的方法,您可以使用字典kwargs
访问它们。
cherrypy.tree.mount(
Songs(), '/api/stats',
{'/':
{'request.dispatch': cherrypy.dispatch.MethodDispatcher()}
}
)
def GET(self,ad_id=None,*args, **kwargs):
start_time = kwargs.get('start_time', None)
end_time = kwargs.get('end_time', None)
# you can also use kwargs['XXX']
# or do lookups with 'XXX' in kwargs
# or set (start_time=None, end_time=None) at the signature
# as a keyword argument.
jsonData1={}
jsonData = self.readData()
counter2 = 0
for item in jsonData:
index = jsonData[item][2]
if index==ad_id:
jsonData1[counter2] = jsonData[item]
counter2 += 1
print jsonData1
return ('Here is the stat %s')%(jsonData1)
此外,*args
将包含网址的任何其他细分的任何位置参数,例如/api/stats/1/a/b/c
将创建args=('a', 'b', 'c')