- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我接到了为 Trac 编写插件的任务。它应该为问题跟踪系统中归档的票数和估计提供燃尽图数据。用户将他的请求写成 wikimacro,并提供一个链接/按钮,用于将燃尽图下载为 csv 文件,也计划输出为图表,但优先级较低。
我有一个处理数据的有效解决方案,但我遇到了以下问题。
我的问题
我如何在维基页面上为根据用户请求动态创建的文件提供下载链接/- 按钮?
我已经看到一些尝试在 trac 源本身和其他插件中发送文件,但由于我是网络编程的新手,这并没有真正帮助。
更新1我一直在尝试按照 Felix 建议的方式解决问题,这为我打开了一个新问题。这个(愚蠢的)例子应该证明我的问题。我的宏生成以下 URL 并将其添加为维基页面的链接。
//http://servername.com/projectname/wiki/page_name?teddy=bear
但是 RequestHandler 没有反应,即使条件返回 true。编辑:这段代码现在显示了示例的工作版本。
新网址:
#example url
#http://127.0.0.1:8000/prove/files/new
class CustomRequestHandlerModule(Component):
implements(IRequestHandler)
def match_request(self,req):
#old, not working
#return "teddy=bear"== str(req.path_info).split('?')[1]
#new
accept="/files/new"== str(req.path_info)
return accept
def process_request(self,req):
csvfile = self.create_csv()
req.send_response(200)
req.send_header('Content-Type', 'text/csv')
req.send_header('Content-length', len(csvfile))
req.send_header('Content-Disposition','filename=lala.csv')
req.end_headers()
req.write(csvfile)
raise RequestDone
更新2插入 loggingstatements 显示 match_request 永远不会被调用。
我做错了什么? (是的,create_csv() 已经存在)
更新 3 感谢您的帮助 =)
最佳答案
如果 match_request
没有被调用,那么 process_request
永远没有机会执行。假设您的插件没有任何问题阻止 Trac 正确加载它,可能发生的情况是另一个处理程序在调用您的 match_request
版本之前匹配 URL。尝试将您的日志级别提高到“调试”,看看它是否提供了足够的信息来判断谁在处理该请求。
另一种选择是为自动生成的文件创建自定义“命名空间”。尝试将生成的 URL 中的“wiki”替换为"file"之类的内容。这应该可以防止任何内置处理程序在您的插件的 match_request
方法被调用之前处理请求。
关于python - 由 Trac-Wikimacro 动态创建的文件的下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276080/
我接到了为 Trac 编写插件的任务。它应该为问题跟踪系统中归档的票数和估计提供燃尽图数据。用户将他的请求写成 wikimacro,并提供一个链接/按钮,用于将燃尽图下载为 csv 文件,也计划输出为
我是一名优秀的程序员,十分优秀!