django Admin文档生成器使用详解


Posted in Python onJuly 22, 2019

前言

Django的admindocs应用可以从模型、视图、模板标签等地方获得文档内容。

一、概览

要激活admindocs,请按下面的步骤操作:

  • 在INSTALLED_APPS内添加django.contrib.admindocs
  • 在urlpatterns内添加url(r'^admin/doc/',include('django.contrib.admindocs.urls'))。确保它处于r'^admin/'条目之前,原因你懂的。
  • 安装Python的docutils模块(http://docutils.sf.net/)(pip3 install docutils)
  • 可选:想使用admindocs的书签小工具,需要安装django.contrib.admindocs.middleware.XViewMiddleware

如果上述步骤顺利完成,那么你可以从admin界面访问doc界面,也可以直接访问/admin/doc,如下图:

django Admin文档生成器使用详解

它看起来是下面的样子:

django Admin文档生成器使用详解

下面的这些特殊标记,可帮助你在文档字符串中,快速创建指向其它组件的链接:

django Admin文档生成器使用详解

二、模型

在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."""
    ...

django Admin文档生成器使用详解

django Admin文档生成器使用详解

三、视图

站点内的每个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)

django Admin文档生成器使用详解

四、模板标签和过滤器

所有Django内置的或者你自定义的或者第三方app提供的标签和过滤器都将在页面内展示:

django Admin文档生成器使用详解

django Admin文档生成器使用详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中遍历文件的3个方法
Sep 02 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
github配置使用指南
Nov 18 Python
VSCode下好用的Python插件及配置
Apr 06 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 Python
Python实现Restful API的例子
Aug 31 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
Python二元算术运算常用方法解析
Sep 15 Python
用python画城市轮播地图
May 28 Python
Python合并pdf文件的工具
Jul 01 Python
django表单的Widgets使用详解
Jul 22 #Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 #Python
超简单的Python HTTP服务
Jul 22 #Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 #Python
django框架CSRF防护原理与用法分析
Jul 22 #Python
全面了解django的缓存机制及使用方法
Jul 22 #Python
python logging模块书写日志以及日志分割详解
Jul 22 #Python
You might like
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
netbeans7安装python插件的方法图解
2013/12/24 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
Python列表切片操作实例总结
2019/02/19 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
幼儿园教师教学反思
2014/02/06 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
利用Python判断你的密码难度等级
2021/06/02 Python
python实现剪贴板的操作
2021/07/01 Python
Pandas 稀疏数据结构的实现
2021/07/25 Python