我可以使用Sphinx在Django项目中写我的帮助文档吗

时间:2019-11-24 17:53:42

标签: django python-sphinx

我有一个django项目,一个菜单选项是“帮助”。帮助文档是使用Sphinx编写的,页面很多,例如索引,简介,第一视图,用户,词汇表。

我用过html:

<li><a href="help" target="_blank">Help</a></li>

我的网址和视图是:

urls.py

urlpatterns = [
                url(r'^help/', views.index, name='index'),
              ]

views.py

def index(request):
    url = 'help/index.html'
    return render(request, url, {})

这会将我带到菜单中的帮助索引页面,但是我在文档页面中单击的每个链接都会重新引导我通过视图中的索引,并重新显示索引页面,而不是显示我所链接的请求。

如果在不使用django网站的情况下直接在浏览器中显示索引页,则它可以正常工作。

我不愿意将帮助子系统集成到django中,因为每次我“制作html”时都会被覆盖。

我应该采取什么方法?

1 个答案:

答案 0 :(得分:0)

我正在使用的一种折衷方法是在 urls.py 的帮助文档中为每个页面创建一个条目,并在 view.py 中创建一个相应的条目,因此< / p>

urls.py

urlpatterns = [
                url(r'^help/first_view', views.first_view, name='first_view'),
                url(r'^help/glossary', views.glossary, name='glossary'),
                url(r'^help/', views.index, name='index'),
              ]

views.py

def index(request):
    url = 'help/index.html'
    return render(request, url, {})


def first_view(request):
    url = 'help/first_view.html'
    return render(request, url, {})


def glossary(request):
    url = 'help/glossary.html'
    return render(request, url, {})

我写了一个脚本,在'make html'之后更新html页面,以指向相关的CSS和图像文件。就我而言,我的CSS文件位于static / css中,我可以执行以下功能:

CSS_POINTER = '{% load static %}'

for line in file_lines:   
    if '.css' in line:
        middle = line.replace('_static', "{% static 'css")
        line = middle.replace('.css', '.css'+"' %}")

if not CSS_POINTER in file.lines:
    file_lines.insert(0, CSS_POINTER)