gitweb本身是一个perl写的cgi脚本,我把他嵌入到django中的主要目的就是可以实现一些定制,比如可以在views里做到权限控制,定制输出等。
主要是用python的subprocess去调用执行这个cgi,然后得到输出后,处理一下后用django的HttpResponse输出网页内容。哈哈 说起来一开始还不怎么会调用,然后居然去看了python的CGIHTTPServer的源代码,照着抄了一些才搞成功。
我把这个用到了之前写的gitube程序中,效果还不错。
https://github.com/harryxu/gitube/blob/master/gitube/apps/gitweb/views.py