百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

django集成Sphinx,为项目自动生成文档

toyiye 2024-08-27 22:02 4 浏览 0 评论

Sphinx是一个工具,可以轻松创建智能和漂亮的文档,他与Python自带的pydoc是同一类产品,但比pydoc更加优秀,还有很多主题可以选择,平时在开发过程中,我们看到的第三方包的文档,基本上都是用该模块自动生成的,今天我就带大家手把手将其集成到django项目当中,使其为我们的django项目自动生成文档!

创建一个django的Demo项目

# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
venv\Scripts\activate     ## windowns激活
source venv/bin/activate  ## linux激活
# 安装django
pip3 install django
# 创建django项目
django-admin startproject mysite .
# 创建一个demo的app
python3 manage.py startapp demo

经过以上命令我们已经成功创建了一个基础的django项目框架,之后我们就需要通过pip命令来安装Sphinx,来正式进入我们今天的主题!

pip命令安装Sphinx

# 安装sphinx
pip3 install sphinx
# 查看版本号验证是否安装成功
sphinx-build --version
# 返回版本号信息,说明安装成功
sphinx-build 4.4.0  

创建文档布局

sphinx-quickstart docs

运行这个命令后,终端会弹出创建基本目录和配置布局的一系列问题,内容如下:

  • > Separate source and build directories (y/n) [n]:y 是否分离源和构建目录输入y
  • > Project name:mysite 项目名称
  • > Author name(s):name 文档作者名称
  • > Project release []:1.0 文档版本号
  • > Project language [en]: 文档语言,默认留空,为英文
├── docs
│   ├── build
│   │   └── doctrees
│   ├── make.bat
│   ├── Makefile
│   └── source
│       ├── conf.py
│       ├── index.rst
│       ├── _static
│       └── _templates
├── demo
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── static
│   ├── templates
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── mysite
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── db.sqlite3
└── manage.py    

运营完以上命令之后,我们将得到如上所示的一个目录结构,docs则是我们的文档目录,docs目录中文件用途如下:

  • build/

-- 编译生成的最终文档静态文件存放目录

  • make.bat和Makefile

-- 方便的脚本,用于简化一些编译操作命令,例如渲染内容。

  • source/conf.py

-- 保存 Sphinx 项目配置的 Python 脚本。它包含您指定的项目名称和版本,以及一些额外的配置键。

  • source/index.rst

-- 项目的根文档,用作欢迎页面,即首页,并包含"目录树"。

做完以上工作之后,他还不能自动将django项目中的注释内容提取到文档当中,因为他还识别不到我们的django项目及目录,需要在source/conf.py文件中进一步配置!

...

import os
import sys
# 引入django,使其可以独立运行
import django
# 找到项目的根目录
sys.path.insert(0, os.path.abspath('../../'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# 启动django命令,这个很重要
django.setup()

# -- Project information -----------------------------------------------------

project = 'mysite'
copyright = '2022, name'
author = 'name'

...

以上内容便是source/conf.py中新增的配置,还需要确保在其内部的extensions配置项中配置如下代码:

extensions = [
    'sphinx.ext.todo', 'sphinx.ext.viewcode', 'sphinx.ext.autodoc'
]

接下来就可以生成rst文件了,运行以下命令

sphinx-apidoc -o docs/source/mysite ../mysite

-o后边跟随的路径是我们生成rst的保存目录,一般都存放在docs/source中,至于再是否增加子目录视情况而定; 空格后跟随的 ../mysite则是我们需要提取的目录,这里的路径如果用相对路径不熟练的话可以用绝对路径!

至此,我们可以看到docs/source目录中多出来一个mysite的目录,并且生成了相关的rst文件,这些rst文件中的内容可以进一步手动定义,具体可以参考官方文档!

编译生成html文档

这里有两种方法,假如我们目前在manage.py文件的同级目录,可以运行如下命令

sphinx-build -b html docs/source/ docs/build/html

这个命令可以帮我们生成静态的html文件,并编译存放到docs/build/html目录中,-b 后边跟随的html就是编译的文档格式, 当然还可以编译成好几种格式,但是一般我们django的话都编译成html,因为文档我们还要部署到线上!

另外一种简便的方法就是进入docs目录(cd docs),直接运行make html即可!

走到这一步build目录中就生成了一个html目录,这就是我们要访问的文档目录!

但是,如何才能让这个文档在线上可以访问呢?这就需要在django项目中为文档目录配置url,让其可以访问!

配置docs访问地址

在项目的配置文件settings.py中添加如下代码,路径为:mysite/settings.py

# 集成文档
DOCS_URL = '/docs/'  # url
DOCS_ROOT = BASE_DIR / 'docs/build/html'   # 文档路径

在项目的urls.py中增加以下配置, 路径为:mysite/urls.py

from django.contrib import admin
from django.urls import path
# 新增的
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('admin/', admin.site.urls),
# 加入docs目录
] + static(settings.DOCS_URL , document_root=settings.DOCS_ROOT)   

至此,启动我们的项目runserver之后,访问127.0.0.1:8000/docs/就可以访问到我们的文档!

为文档更换主题

主题站点:https://sphinx-themes.org/

这个站点为sphinx提供了很多风格的主题皮肤,我们可以去挑选适合自己的通过pip命令安装即可,安装之后只需要修改source目录中的conf.py文件中的html_name配置项的名称为对应的主题名称即可完成换肤!


欢迎大家关注学习,一起进步,笔者专注django相关开发,对django有深入研究,可一起学习探讨,并且承接django相关项目的开发任务!

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码