为argparse脚本创建web gui和任务接口的django应用程序
django-djangui的Python项目详细描述
#安圭
[![构建状态](https://travis-ci.org/chris7/django-djangui.svg?branch=master)(https://travis-ci.org/chris7/django-djangui)[![覆盖状态](https://coveralls.io/repos/chris7/django-djangui/badge.svg?branch=master)](https://coveralls.io/r/chris7/django-djangui?branch=master)
注意:djangui正在与wooey合并。大多数代码库都是djangui——因此项目不会受到显著影响(仍然基于django等)。您可以在[wooey]组织(http://www.github.com/wooey)跟踪此进度
1。[安装](安装)
1.[仅限Djangui项目](仅限Djangui)
2.[将Djangui添加到现有项目](现有)
2.[运行djangui](运行)
1.[过程文件](过程文件)
2.[两个过程](两个过程)
3.[添加脚本](添加)
4.[脚本组织](组织)
5.[脚本权限](权限)
6。[配置](配置)
7.[与s3/远程文件系统一起使用](s3)
8。[脚本指南](脚本指南)
这个项目的灵感来自于[sandman](https://github.com/jeffknupp/sandman)如何简单而强大地将用户暴露在数据库中。
这也是基于我作为一名数据科学家的需要,我需要一个能够:
1的系统。为数据分析自动记录我的工作流程
(简单的模型保存)。
2.使没有命令行经验的实验室成员能够利用python脚本。使用简单的python轻松包装任何程序,而不必对galaxy等现有工具使用特定于语言的
。
/一个仅限djangoi的项目
djangoi中包含一个引导程序,它将创建django项目,并自动为您设置大多数所需的设置。
1。djanguify-p项目名称
2.按照引导程序末尾的说明创建管理用户并访问管理页面
3。登录到"管理"页,无论项目在何处被托管(在本地,这将是localhost:8000/admin)
\lt;a name="existing">;<;/a>;与现有django项目一起安装
1。将"djangui"添加到settings.py中已安装的_应用程序(也可以选择djaceleri,除非您希望绑定到现有的芹菜实例)
2。将以下内容添加到URL.py:
`url(r'^',include('djangui.urls'),`
(注意:它不需要根在您的网站库,
您可以拥有r'^djangui/'…作为路由器:
3.迁移数据库:
django 1.6及以下版本:
`./manage.py syncdb`
django 1.7及以上版本
`./manage.py makemigrations`
`./manage.py migrate`
>4。确保模板上下文处理器变量中包含以下内容:
template上下文处理器=[
…
'django.contrib.auth.context\u processors.auth',
'django.core.context\u processors.request'
…]
<;a name="running">;<;/一个>;运行djangui
djangui依赖于一个分布式工作进程来处理任务,您可以通过在设置中将**djangui芹菜**设置为false来禁用它,这将允许您通过简单的命令来运行djangui:
`````
`````python manage.py runserver
```
,这将导致服务器执行任务,从而阻塞站点。
运行djangui的方法是使用带有[honcho]的procfile(https://github.com/nickstenning/honcho),可以通过pip安装。做一个文件,在项目根目录中调用procfile(与manage.py位于同一位置),内容如下:
````
web:python manage.py run server
worker:python manage.py芹菜worker-c 1--beat-l info
eom
```
命令:
```
honcho start
``
通过两个独立的进程
,您还可以通过调用两个命令来运行djangui(每个进程都需要一个单独的进程):
````
python manage.py celeri worker-c 1--beat-l info
python manage.py runserver
```
通过django管理界面和manage.py中的*addscript*命令可以两种方式添加管理脚本,在django管理界面中,可以通过"脚本"模型添加脚本。在这里,可以将用户权限设置为
以及外观功能,例如脚本的显示名称、描述(如果提供,否则脚本名和描述
将自动由argparse中的描述填充(如果可用)。
\文件)。
默认情况下,脚本将在"djangui脚本"组中创建。
脚本的顺序和脚本的分组可以通过
在管理中更改"脚本顺序"或"组顺序"选项来更改。
如果设置了"用户组"选项,则会将脚本使用限制为选定组中的用户。
通过取消选中"脚本/组活动"选项,脚本和组也可以对所有用户关闭。
保存用户上传文件的位置(默认:djangui_文件)
**djangui_芹菜**:布尔值,无论芹菜是否启用。如果禁用,任务将在本地运行并阻止执行。(默认值:true)
**djangui_芹菜任务**:string,djangui芹菜任务的名称。(默认值:"djangui.tasks")
**djangui_allow_anonymous**:布尔值,是否允许匿名用户提交作业。(默认值:true)
默认情况下,djangui有一个基本的用户帐户系统。它非常基础,不通过电子邮件确认注册。
**djangui-auth**:boolean,是否使用djangui的授权系统进行简单的登录/注册。(默认值:true)
**djangui_login_url**:string,如果您有现有的授权系统,则登录url:(默认值:settings.login_url
**djangui_register_url**:string,如果您有现有的授权系统,注册URL:(默认值):/accounts/register/)
**djangui_ephemeral_files**:布尔值,前提是每次重新启动时文件系统都会更改。(默认值:false)
**djangui_show_locked_scripts**:布尔值,是将锁定的脚本显示为禁用还是完全隐藏。(defalt:true——显示为禁用)
<;a name="s3">;<;/a>;远程文件系统
djangui已在Heroku上作为文件存储系统使用S3进行了测试。可以在user_settings.py中看到此设置,它为您提供了非本地服务器的起点。简而言之,您需要更改存储设置如下:
<;code>;
staticfiles\u storage=default\u file\u storage='djangui.djangistorage.cacheds3botostorage'
djangui_ephemeral_files=true
<;code>;
\lt;a name="script guide">;<;/a>;脚本指南
使脚本与djangui兼容的最简单方法是在全局范围内定义argparse类。例如:
````
import sys
parser.help='找到下面倍数之和的数字',type=int,default=1000)
def main():
args=parser.parse args()
…
所以我可以处理他们出现的情况,并尽可能使所有的鼓励。当前失败的一个已知区域是在"if\u name"块中定义argparse实例
[![构建状态](https://travis-ci.org/chris7/django-djangui.svg?branch=master)(https://travis-ci.org/chris7/django-djangui)[![覆盖状态](https://coveralls.io/repos/chris7/django-djangui/badge.svg?branch=master)](https://coveralls.io/r/chris7/django-djangui?branch=master)
注意:djangui正在与wooey合并。大多数代码库都是djangui——因此项目不会受到显著影响(仍然基于django等)。您可以在[wooey]组织(http://www.github.com/wooey)跟踪此进度
1。[安装](安装)
1.[仅限Djangui项目](仅限Djangui)
2.[将Djangui添加到现有项目](现有)
2.[运行djangui](运行)
1.[过程文件](过程文件)
2.[两个过程](两个过程)
3.[添加脚本](添加)
4.[脚本组织](组织)
5.[脚本权限](权限)
6。[配置](配置)
7.[与s3/远程文件系统一起使用](s3)
8。[脚本指南](脚本指南)
这个项目的灵感来自于[sandman](https://github.com/jeffknupp/sandman)如何简单而强大地将用户暴露在数据库中。
这也是基于我作为一名数据科学家的需要,我需要一个能够:
1的系统。为数据分析自动记录我的工作流程
(简单的模型保存)。
2.使没有命令行经验的实验室成员能够利用python脚本。使用简单的python轻松包装任何程序,而不必对galaxy等现有工具使用特定于语言的
。
/一个仅限djangoi的项目
djangoi中包含一个引导程序,它将创建django项目,并自动为您设置大多数所需的设置。
1。djanguify-p项目名称
2.按照引导程序末尾的说明创建管理用户并访问管理页面
3。登录到"管理"页,无论项目在何处被托管(在本地,这将是localhost:8000/admin)
\lt;a name="existing">;<;/a>;与现有django项目一起安装
1。将"djangui"添加到settings.py中已安装的_应用程序(也可以选择djaceleri,除非您希望绑定到现有的芹菜实例)
2。将以下内容添加到URL.py:
`url(r'^',include('djangui.urls'),`
(注意:它不需要根在您的网站库,
您可以拥有r'^djangui/'…作为路由器:
3.迁移数据库:
django 1.6及以下版本:
`./manage.py syncdb`
django 1.7及以上版本
`./manage.py makemigrations`
`./manage.py migrate`
>4。确保模板上下文处理器变量中包含以下内容:
template上下文处理器=[
…
'django.contrib.auth.context\u processors.auth',
'django.core.context\u processors.request'
…]
<;a name="running">;<;/一个>;运行djangui
djangui依赖于一个分布式工作进程来处理任务,您可以通过在设置中将**djangui芹菜**设置为false来禁用它,这将允许您通过简单的命令来运行djangui:
`````
`````python manage.py runserver
```
,这将导致服务器执行任务,从而阻塞站点。
运行djangui的方法是使用带有[honcho]的procfile(https://github.com/nickstenning/honcho),可以通过pip安装。做一个文件,在项目根目录中调用procfile(与manage.py位于同一位置),内容如下:
````
web:python manage.py run server
worker:python manage.py芹菜worker-c 1--beat-l info
eom
```
命令:
```
honcho start
``
通过两个独立的进程
,您还可以通过调用两个命令来运行djangui(每个进程都需要一个单独的进程):
````
python manage.py celeri worker-c 1--beat-l info
python manage.py runserver
```
通过django管理界面和manage.py中的*addscript*命令可以两种方式添加管理脚本,在django管理界面中,可以通过"脚本"模型添加脚本。在这里,可以将用户权限设置为
以及外观功能,例如脚本的显示名称、描述(如果提供,否则脚本名和描述
将自动由argparse中的描述填充(如果可用)。
\文件)。
默认情况下,脚本将在"djangui脚本"组中创建。
脚本的顺序和脚本的分组可以通过
在管理中更改"脚本顺序"或"组顺序"选项来更改。
如果设置了"用户组"选项,则会将脚本使用限制为选定组中的用户。
通过取消选中"脚本/组活动"选项,脚本和组也可以对所有用户关闭。
保存用户上传文件的位置(默认:djangui_文件)
**djangui_芹菜**:布尔值,无论芹菜是否启用。如果禁用,任务将在本地运行并阻止执行。(默认值:true)
**djangui_芹菜任务**:string,djangui芹菜任务的名称。(默认值:"djangui.tasks")
**djangui_allow_anonymous**:布尔值,是否允许匿名用户提交作业。(默认值:true)
默认情况下,djangui有一个基本的用户帐户系统。它非常基础,不通过电子邮件确认注册。
**djangui-auth**:boolean,是否使用djangui的授权系统进行简单的登录/注册。(默认值:true)
**djangui_login_url**:string,如果您有现有的授权系统,则登录url:(默认值:settings.login_url
**djangui_register_url**:string,如果您有现有的授权系统,注册URL:(默认值):/accounts/register/)
**djangui_ephemeral_files**:布尔值,前提是每次重新启动时文件系统都会更改。(默认值:false)
**djangui_show_locked_scripts**:布尔值,是将锁定的脚本显示为禁用还是完全隐藏。(defalt:true——显示为禁用)
<;a name="s3">;<;/a>;远程文件系统
djangui已在Heroku上作为文件存储系统使用S3进行了测试。可以在user_settings.py中看到此设置,它为您提供了非本地服务器的起点。简而言之,您需要更改存储设置如下:
<;code>;
staticfiles\u storage=default\u file\u storage='djangui.djangistorage.cacheds3botostorage'
djangui_ephemeral_files=true
<;code>;
\lt;a name="script guide">;<;/a>;脚本指南
使脚本与djangui兼容的最简单方法是在全局范围内定义argparse类。例如:
````
def main():
args=parser.parse args()
…
所以我可以处理他们出现的情况,并尽可能使所有的鼓励。当前失败的一个已知区域是在"if\u name"块中定义argparse实例