Django提供的用于访问许可的mkdocs

django_mkdocs的Python项目详细描述


#django mkdocs

django mkdocs的构建前提是需要简单、美观、可维护的文档,这些文档可以由用户授权。这款应用程序的灵感来自[django documentation](https://github.com/narsil/django-documentation),与django 1.10兼容,并使用[mkdocs](http://www.mkdocs.org/)生成一个由django提供服务的静态站点。django mkdocs并不打算用于大规模访问。它最初是为内部提供文档和选择合作伙伴而创建的。如果您的文档是公开的,那么将mkdocs与github页面或amazon s3一起使用可能是一个更好的解决方案。




您的django项目

在django项目中,将"django_mkdocs"添加到设置中。py:
````
项目/设置。py





已安装的应用程序=(

"django_mkdocs",

````

添加对项目url的引用。py:

```
project/url.py






url从django.conf.url导入url,include




url(r'^docs/',include('django mkdocs.url',namespace="documentation'),
]
````

\mkdocs文档的设置

mkdocs包含在django mkdocs中。该项目自然拥有优秀的文档,并且链接在[此处](http://www.mkdocs.org/)。

在那里启动一个mkdocs项目。

```
$mkdocs new project\u docs
````

settings.py
让我们把它移到django项目根目录中,以便以后更容易地构建:
```
$mv project\u docs/mkdocs.yml./mkdocs.yml
````

站点结构以及应该使用哪些标记文件来生成它
-**docs_dir**指的是将从中生成文档的标记,而
-**site_dir**指的是将生成静态站点的位置。
-最后,**Use_directory_url**应设置为false,Django的路由才能正常工作。

`````
mkdocs.yml





site_name:my docs
页面:
-home:index.md
Use_directory_url:false
docs_dir:project_docs/docs
site_dir:project_docs/site

```


若要生成文档,请从包含mkdocs.yml的目录中运行以下命令。我们在这里包含可选的*--clean*标志,表示应该清除站点目录中已从mkdocs.yml中删除的页引用。
````
$mkdocs build--clean
````

每次部署时都会生成文档。

\必须在项目的settings.py中配置这些设置。将documentation_root设置为包含**docs_dir**和**site_dir**文件夹的目录。在这段代码中,'project_dir'是我们的django项目的绝对路径。

````
project/settings.py





django mkdocs演示参数!
项目目录=os.path.dirname(os.path.dirname(uuu file_uuu))
文档目录=项目目录+'/project_u docs'
```

文档根指向静态生成站点的根。这应该与mkdocs.yml site目录对应。
```
documentation\u html根=documentation\u根+'/site'
```

documentation\u access\u函数用于试图访问文档的视图中。django mkdocs以request.user作为参数调用documentation\u access\u函数。此标志确定谁有权查看文档。
```
documentation\u access\u function=lambda user:user.is\staff
```

django mkdocs假定默认使用nginx服务器来提供文档。默认情况下,documentation xsendfile设置为true。如果您不使用nginx,请期待非常少的用户,并了解使用django.views.static.serve的后果,设置以下标志:
```
documentation\u xsendfile=false
````

能够在项目的urlconf中定义的端点上查看静态站点。让我们在本地测试一下。首先,从项目根目录运行django的开发服务器:

````
$python manage.py run server
````

将浏览器指向localhost:8000/docs(或您引用的url)。现在您应该看到生成的文档了!

注意:如果在演示项目中执行以下操作,则可能需要运行迁移并创建超级用户。执行以下命令后,您还需要在本地主机的django管理控制台进行身份验证:8000/admin。

````
$python manage.py migrate
$python manage.py createsuperuser
```

每次部署时都会自动生成文档。使用heroku实现这一点的一种方法是添加一个部署后钩子。在django项目的根目录中,创建一个名为bin/的目录,在该目录中,创建一个名为*post-compile*

````
$mkdir-bin
$touch-bin/post-compile
````

但是,让我们添加build命令。构建mkdocs文档"
mkdocs build--clean
```

最后的目录树应该是这样的:

````
——bin
_初始化py
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用“Google Play Api Client Library for Java”时,Google Play Api默认为“仅限我”   Java REST web服务如何使用复杂的XML   java提供了这个供应链问题的递归解决方案   java找不到适合jdbc的驱动程序?   java IntelliJ Git集成插件>“新分支”将大写字母F放在“功能/abc”中   多线程Java线程间共享变量   HibernateJava。util。自定义包装枚举类型不支持TreeSet集合类型   JAVAsocket调用次数过多   java有没有办法在没有附加库的情况下启动代理?   javaudp优化   java动态检索rj的路径。jar(OS X中的classes.jar)   在Java中解析DTD   playframework 2.1.4java如何使用@options helper,并将Map<String,String>作为参数   java rest web服务中的web服务异步任务   java使用数组创建密码和用户名   java获取OnCheckedChangedListener中的视图位置   java如果我搞砸了登录,它将直接进入else条件,如果我正确登录,它将进入这两个条件   Java正则表达式跳过匹配项   oracle如何使用jdbc将变量从plsql发送到java?