使用cherrypy在url中传递多个参数

2024-09-29 17:10:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用类似“/api/stats”的url发送GET请求?ad_ids=1,2,3&start_time=2013-09-01&end_time=2013-10-01“但我不知道如何将类装载到此url。 我使用的是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)

提前谢谢你!在

比尔

莫米尔


Tags: 方法apiurlgettimestatsitemad
1条回答
网友
1楼 · 发布于 2024-09-29 17:10:01

可以使用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将包含URL任何附加段的任何位置参数,例如,/api/stats/1/a/b/c将创建{}

相关问题 更多 >

    热门问题