Trac插件,支持HTTP get参数

时间:2013-06-06 14:37:04

标签: python http plugins trac

我对Trac插件和python一般都很新。在这一天的大部分时间里,我一直在寻找一种方法,通过URL请求将参数输入到我正在创建的Trac插件中。

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

http://localhost:8080/tracEnvironment/wiki/wikiTest?name=annie

然后,位于 wikitest 上的插件可以通过URL获取名称。 这可能吗?

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

将这些数据添加到我的插件的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

你说的是“你的”Trac插件。所以我相信你知道about setting up a Trac development environment。您还需要了解如何部署Trac插件。如果它相当简单,单文件插件可能就足够了。所以你可以复制到/ plugins文件夹并立即使用它,可能需要先重新启动web服务器。

让自己熟悉伟大的Trac component architecture。代理请求的代码通常应使用IRequestHandler(来自trac.web.api),one of several扩展点接口。阅读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频道进行讨论,并随着进度不断询问。

相关问题