支持HTTP获取参数的Trac插件



我对Trac插件和python是相当陌生的。在这一天的大部分时间里,我一直在寻找一种方法来获得参数进入我正在创建的Trac插件,通过URL请求。

如果我在站点上有一个插件wikitest,我可以像这样访问它,并提供一个参数:

http://localhost:8080/tracEnvironment/wiki/wikiTest?name=annie
然后我的插件,位于wikitest可以获得通过URL提供的名称。这可能吗?

我已经找到了一些类似问题的答案,建议使用python框架,但我认为我的情况是不同的,因为我正在处理Trac插件,而不是独立的脚本。

什么是最好的方式来获得这些数据到我的插件?

你说的是"你的" Trac插件。因此,我相信您了解如何设置Trac开发环境。接下来,您需要知道如何部署Trac插件。如果它相当简单,一个文件插件可能就足够了。所以你可以复制到/plugins文件夹中,然后马上使用它,可能需要先重启web服务器。

让自己熟悉伟大的Trac组件架构。处理请求的代码通常应该使用IRequestHandler(来自trace .web.api),它是几个扩展点接口之一。在Trac-Hacks.org上阅读现有插件代码,以更好地理解如何使用它。这很容易检查,如果传入的请求是指向扩展

中定义的路径
if req.path_info.startswith('wikitest'):
    # Do something useful.

测试请求类型并执行更多操作

if req.method == 'GET':
    # Handle the request
    if reg.args.get('name'):
        name = req.args['name']
        self.log.debug('Got request for name=%s' % name)

阅读更多代码,在freenode.net的#trac IRC频道中讨论,并在您的进展中继续询问。

最新更新