django - 我可以使用 Sphinx 在 django 项目中编写我的帮助文档吗
问题描述
我有一个 django 项目,一个菜单选项是“帮助”。帮助文档是使用 Sphinx 编写的,有很多页面,例如索引、简介、第一视图、用户、词汇表。
我已经使用了html:
<li><a href="help" target="_blank">Help</a></li>
我的网址和视图是:
网址.py
urlpatterns = [
url(r'^help/', views.index, name='index'),
]
视图.py:
def index(request):
url = 'help/index.html'
return render(request, url, {})
这会将我从菜单转到帮助索引页面,但是我在文档页面中单击的每个链接都会通过视图中的索引重新路由我,并重新显示索引页面,而不是显示我请求的链接。
如果直接在浏览器中显示索引页面,而不使用 django 站点,它会按预期工作。
我不愿意将帮助子系统集成到 django 中,因为每次我“制作 html”时它都会被覆盖。
我应该采取什么方法?
解决方案
我正在使用的折衷方案是在urls.py的帮助文档中为每个页面创建一个条目,并在view.py中创建一个相应的条目,因此
网址.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'),
]
视图.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)
推荐阅读
- r - R - 一个月中某一周的工作日
- python - heroku python selenium没有这样的元素异常
- opengl - 在 OpenGL 片段着色器中绘制三角形
- heroku - dyno 关闭时是否有任何 Heroku 请求队列用于存储请求?
- python - 获取用户输入以更改颜色的功能
- rust - 为什么从 /dev/zero 读取一行输入会使我的计算机无响应?
- rust - 如果我分配,为什么我得到“借用时临时价值下降”,但在通过函数传递时却没有?
- powershell - Powershell脚本通过将文件与文件夹名称匹配来将文件复制到文件夹
- pip - 没有名为 pymc3 的模块
- mono - 在 Webflux 中运行顺序操作