范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  Sphinx是一个工具,可以轻松创建智能和漂亮的文档,他与Python自带的pydoc是同一类产品,但比pydoc更加优秀,还有很多主题可以选择,平时在开发过程中,我们看到的第三方包的文档,基本上都是用该模块自动生成的,今天我就带大家手把手将其集成到django项目当中,使其为我们的django项目自动生成文档! 创建一个django的Demo项目# 创建虚拟环境 python3 -m venv venv # 激活虚拟环境 venvScriptsactivate     ## 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.pyfrom 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相关项目的开发任务!

什么时候能把我们手机系统升级成鸿蒙系统呀?你怎么看?谢谢您的问题。您的手机符合条件,现在就是可以享受到鸿蒙系统体验。鸿蒙系统升级之日。余承东在去年已经表态,如果谷歌安卓彻底断供了,所以安卓国产手机,即使不是华为荣耀的手机,都可以一夜孩子开学要上一年级了,我需要准备一台打印机吗?我的小孩子刚读完一年级,如果条件允许,最好买一台打印机。现在老师布置的一些课后作业,一些练习卷子都是通过微信布置,要自己打印出来。自己有打印机可以随时打印,方便。推荐俩款打印机供你马云和刘强东谁会走到最后?不知道,现在谁出头谁遭殃,苟到最后就是赢家。不出意外应该是刘强东刘强东比马云岁数小小个十来岁应该走的晚一些肯定刘强东会走到最后!不言而喻,现在的电商领域已经没有了马云的战场,虽然市我想买华为手机支持国货,但是手机价格偏高怎么办?在回答之前不得不纠正两个点,这是很多人都容易忽视的点1不存在纯国产的手机,哪怕是华为也做不到就不说被制裁的芯片,就说里面的镜头模组,这是跟索尼定制的,徕卡认证虽然不是硬件,但人家却想买一款便宜的小屏手机,内存大,系统流畅稳定的,就为了每天微信汇报工作,有哪些牌子可以推荐?感谢邀请想买一款便宜的小屏手机,内存大,系统流畅稳定的,就为了每天微信汇报工作,有哪些牌子可以推荐?题主问题的核心是想买一款便宜的小屏幕手机,内存大,系统流畅稳定的,就为了每天汇报为什么戴助听器看电视不行?戴上助听器后主要先解决佩戴者与别人正常交流问题。能不能听清楚电视的声音取决于佩戴者的基础听力佩戴时间助听器性能电视节目内容以及佩戴者本身言语分辨能力。佩戴者基础听力和言语分辨能力较喜欢玩游戏,是买Xbox好还是买一台索尼PS5好?能否分析一下?PS5现在最大的问题是没游戏玩,那么多的游戏都是以前的PS4也能玩的,也就是说花那么多钱买来,和PS4机友玩的是一样的东西(手柄的体验区别不足以形成优越感),而且最近的PS送的游戏自拍也如此清晰?中兴Axon30屏下版内外兼修的美让美女为之痴迷这段时间相信大家已经被屏下旗舰机型小米MIX4和中兴Axon30屏下版洗脑了吧!其实除了各位网友和用户,一些厂家也都参与其中。比如昨晚在一加手机直播间官方也对屏下即使进行了解读。那华为P30支持双录直播达人狂赞如何同时录进两个画面?继暗拍变焦核心卖点曝光后,华为P30双录功能今日亮相,它的出现,解决了困扰大家很久的拍摄难题,一键就将大场面与主角人物特写摄进一块手机屏幕里。关于华为P30双网易严选的重与慢1963年,美国经济学家蒙代尔就开放经济下的政策选择问题提出了蒙代尔三角理论,也称三难选择。蒙代尔三角其含义是,在开放经济条件下,本国货币政策的独立性,汇率的稳定性,资本的完全流动7788跌至2978128G3DTouch老iPhone威力不减!数码新资讯?互联新事件?手机快测评?二十年专业老司机,等你上车,点击右上角关注泡泡网即可智能机已经成为了人手必备的科技产品,每年很多人都会追求最新的手机,但对于老机器来讲,生命周期
数据编织超级自动化2022年这些技术发展趋势不容忽视来源科技日报数据编织超级自动化边缘人工智能2022年这些技术发展趋势不容忽视科技创新世界潮本报记者刘霞新冠疫情催生了数字孪生元宇宙万能宇宙增强现实虚拟现实和混合现实的广泛使用。随着iPhone新机定档,3月8日发布,A155G售价3000起,别太期待iPhoneSE3属于入门吊车尾机型想买还得慎重果粉期待的iPhoneSE3将在3月8号发布,作为苹果主打性价比的产品,也是降低了苹果手机的使用门槛,但是也有很多小伙伴,对它抱有一智能家居可用语音控制的米家床头灯2在卧室中床头灯是最不显眼的物件,就这样一个平时不会引起我们关注的小东西,小米也玩出来新花样,但还别说还真的蛮实用,米家床头灯2让我给你慢慢道来。打开米家智能床头灯2,满满一罐子柔光雅化集团,翠微股份,大金重工,新洁能,格力电器,三一重工加油露笑科技第三代半导体总龙头。雅化集团是锂电池概念。曲江文旅是旅游概念。新洁能是汽车芯片概念。深南股份是大数据概念。延华智能是数据中心概念。翠微股份了百货零售概念。亚联发展是大数据概布局智能化高端赛道海信真空冰箱以技术打造差异化优势中证网讯(王珞)2月22日,海信冰箱正式发布以智趣链接真空新鲜不止一面为主题的智趣食材管理方案,通过创意视频还原生活场景,深度解析智能科技带来的以海信真空冰箱为终端枢纽的智慧家居生中国再次领先全球,成功研发出人造粮食,或将解决人类大问题图为人工合成淀粉在中国再次领先全球,成功研发出人造粮食之后,这或将可以解决饥荒这样的人类大问题,只是,人造粮食研发成功,对中国对全世界究竟有着多大的意义?倘若说中国能够通过人造合成也许是可接入米家,目前最强的扫拖一体机器人追觅W10Pro前言这两年有幸接触到了不同品牌多款扫拖一体机器人,单就避障能力来说,2021年的追觅L10Pro,是我用过的机器里最靠谱的。无奈后续友商们频频发力,在不到一年的时间里,就让自动集尘以色列国防部公布新的人工智能战略据c4isrnet网站2月12日刊文,以色列国防军宣布,已通过了一项新的战略,将在武装部队的各个部门加速推广应用人工智能技术。这项新战略是在特拉维夫大学Blavatnik跨学科网络高通将在2023年支持AV1视频编解码器这款开源免版税的编解码器明年应该会在大多数旗舰Android手机上热销。据报道称,高通(Qualcomm)将在明年最终加入AV1视频编解码器的行列。AV1是网络的下一个开放免版税的2022私域电商平台趋势报告发布,私域中能否诞生下一个天猫?文新浪潮研究院在线流量红利的见顶,叠加疫情影响下的加速线上化,私域在火热的发展态势下再度升温。根据腾讯所发布的2021中国私域营销白皮书,接近80以上的消费者已经养成在私域中进行消注意!这14款App违法!快看你手机里有没有国家计算机病毒应急处理中心近期通过互联网监测发现14款移动应用存在隐私不合规行为,违反网络安全法个人信息保护法相关规定,涉嫌超范围采集个人隐私信息。1。在App首次运行时未通过弹窗