Django的admindocs应用可以从模型、视图、模板标签等地方获得文档内容
要激活admindocs,请按下面的步骤操作:
在INSTALLED_APPS
内添加django.contrib.admindocs
在urlpatterns
内添加path('admin/doc/',include('django.contrib.admindocs.urls'))
,确保它处于'admin/'
条目之前
安装Python的docutils模块(pip install docutils)
可选:想使用admindocs的书签小工具,需要安装django.contrib.admindocs.middleware.XViewMiddleware
如果上述步骤顺利完成,那么你可以从admin界面访问doc界面,也可以直接访问/admin/doc
,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvMmoriI-1608308304911)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092811371-1753968659.png)]
它看起来是下面的样子:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VoUINdNR-1608308304912)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092817499-1378427183.png)]
下面的这些特殊标记,可帮助你在文档字符串中,快速创建指向其它组件的链接:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MDMbch1p-1608308304913)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092822085-1041746405.jpg)]
在doc页面的模型部分,列出了所有的模型,点击可以查看具体的字段等细节信息。信息主要来自字段的help_txt
部分和模型方法的docstring
部分。如下面图中展示:
有用的帮助信息看起来是这个样子的:
class BlogEntry(models.Model):
"""
Stores a single blog entry, related to :model:`blog.Blog` and
:model:`auth.User`.
"""
slug = models.SlugField(help_text="A short label, generally used in URLs.")
author = models.ForeignKey(
User,
models.SET_NULL,
blank=True, null=True,
)
blog = models.ForeignKey(Blog, models.CASCADE)
...
def publish(self):
"""Makes the blog entry live on the site."""
...
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSbiY4iT-1608308304914)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092829356-137305145.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QqhEVMHs-1608308304915)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092832783-1191723425.png)]
站点内的每个URL都会在doc内享有一个页面,点击某个URL将会展示对应的视图信息。主要包括下面这些信息:
视图功能的简单描述
上下文环境,或者视图模块里的变量列表
视图内使用的模板
例如:
from django.shortcuts import render
from myapp.models import MyModel
def my_view(request, slug):
"""
Display an individual :model:`myapp.MyModel`.
**Context**
``mymodel``
An instance of :model:`myapp.MyModel`.
**Template:**
:template:`myapp/my_template.html`
"""
context = {'mymodel': MyModel.objects.get(slug=slug)}
return render(request, 'myapp/my_template.html', context)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7SEkIfh-1608308304916)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092838921-981715607.png)]
所有Django内置的或者你自定义的或者第三方app提供的标签和过滤器都将在页面内展示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmQFrbqg-1608308304918)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092843242-1142923600.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W46yaeTU-1608308304919)(/home/pyvip/py_case/python 笔记/图片/1762677-20201006092847552-877294534.png)]