用于收集和可视化网络拓扑的可重用django应用程序
django-netjsongraph的Python项目详细描述
django netjsongraph
========
图片::https://travis ci.org/netjson/django netjsongraph.svg
:目标:https://travis ci.org/netjson/django netjsongraph
…图片::https://coveralls.io/repos/netjson/django netjsongraph/badge.svg
:目标:https://coveralls.io/r/netjson/django netjsongraph
。图片::https://requires.io/github/netjson/django-netjsongraph/requirements.svg?branch=master
:目标:https://requires.io/github/netjson/django-netjsongraph/requirements/?branch=master
:alt:需求状态
…图片::https://badge.fury.io/py/django netjsongraph.svg
:目标:http://badge.fury.io/py/django netjsongraph
图片::https://img.shields.io/gitter/room/nw js/nw.js.svg?style=flat square
:目标:https://gitter.im/openwisp/general
----
>可重复使用的django应用程序,用于收集和可视化网络拓扑。
……图片::https://raw.githubusercontent.com/netjson/django netjsongraph/master/docs/images/visualizer.png
…图片::https://raw.githubusercontent.com/netjson/django netjsongraph/master/docs/images/admin.png
…目录::**目录**:
:反向链接:无
:深度:3
----
->当前功能
----
**网络拓扑采集器**支持不同格式:
-netjson网络图
-olsr(jsoninfo/txtinfo)
-batman-adv(jsondoc/txtinfo)
-bmx6(q6m)
-cnml 1.0
-openvpn
-可以通过基于"netjsongraph.js<;https://github.com/netjson/netjsongraph.js>;"的"指定自定义解析器"添加其他格式`_
***简单的http api**,以"netjson<;http://netjson.org>;` networkgraph*格式公开数据
***管理接口**,允许轻松管理、审核、可视化和调试拓扑及其相关数据(节点、链接)
***从多个节点接收拓扑**pology history**:允许保存可在前端查看的每个拓扑的每日快照
project goals
----
*使您可以轻松地可视化"netdiff<;https://github.com/ninuxorg/netdiff>;支持的格式的网络拓扑数据POLOGY数据通过*netjson networkgraph*格式的restful资源
*易于集成到更大的django项目中以提高可重用性
*易于通过提供抽象模型来扩展其模型(**在这一点上需要改进**)
*提供自定义或替换可视化工具(**在这一点上需要改进**)
*保持核心非常简单
*提供扩展默认行为的方法
*鼓励将新功能作为扩展发布
通过"openwisp<;http://openwisp.org>;` `项目:
`ansible-openwisp2<;https://github.com/openwisp/ansible-openwisp2>;` ` `.
确保遵循以下部分中说明的操作:`启用网络拓扑
模块<;https://github.com/openwisp/ansible-openwisp2启用网络拓扑模块代码块::shell
install development version
代码块::shell
pip安装https://github.com/netjson/django netjsongraph/tarball/master
代码块::shell
pip install-e git+git://github.com/netjson/django netjsongraph egg=django netjsongraph
有限公司de block::shell
git clone git@github.com:<;your懔fork>;/django netjsongraph.git
cd django netjsongraph
python setup.py develop
安装程序(集成到现有django项目中)
----------
``以及从"django"netjsongraph"到"已安装的应用程序"`:
…代码块::python
installed廑apps=[
需要):
…代码块::python
from django.conf.url导入include,url
from django_netjsongraph.api导入url as netjsongraph_api
from django_netjsongraph.visualizer导入url as netjsongraph_visualizer
urlpatterns=[
url(r'^api/,include(netjsongraph_api)),
url(r'',include(netjsongraph_visualizer)),
]
>创建数据库表::
./manage.py migrate
management命令opology url(显示网络拓扑的文件的url)已经添加到admin中,可以使用"update_topology"管理命令收集数据并开始播放网络图::
./manage.py update_topology
接受一个``--label``参数,该参数将用于在
拓扑标签中搜索,例如::
./manage.py update\u topology--label mytopology
``save\u snapshot``
^^^^^^^^^^^^^^^^^^^^^^^
可用于将来查看网络拓扑图::
./manage.py save_snapshot
management命令接受一个`--label``参数,该参数将用于搜索
拓扑标签,例如::
./manage.py save_snapshot--label mytopology
logging
----
egies
——
收集拓扑信息的方法主要有两种:
**fetch**策略
**receive**策略
拓扑数据将从URL获取。
当不再检测到某些链接时,它们将被直接标记为"向下"。
在post-http请求的有效负载中接收数据;
当接收到这样的请求时,首先根据
topology``键检查它的``key``参数。
强烈建议将"topology"实例的"expiration\u time"设置为"0"(秒),这样
系统的工作方式与**获取策略**一样,唯一的区别是
数据是由一个节点发送的,而不是由收集器获取的。
在多个节点上,您**应该**将"拓扑"实例的"过期时间"设置为略高于节点发送拓扑所用的时间间隔的值,只有在有一段时间未检测到链接时,才会将其标记为"关闭"。此机制允许可视化即使网络被分成几个部分,缺点是检测脱机的链接需要更长的时间。
|``名单``` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `^
+———-——+——+
**类型**:``str```
+——+——+——+
**默认值**:``none``
+——+——+——+——+——+——
表示初始化时要导入的python模块的字符串。
我们的航空公司。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
=--------+
//` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `正在创建拓扑URL。
``netjsongraph ``` netjsongraph ````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^
```````````````````````````````````````````````````````````````````````````````>如果某个链接关闭了更多天如果没有这个号码,它将被
``update\u topology``管理命令删除。
`set this to``false``将禁用此功能。
``netjsongraph\u visualizer\u css``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+——+————+————
:``str```
+——+——+————+——+
**默认值**:``netjsongraph/css/style.css``
+——+——+——+————————————————————————————————————————————————————————允许根据用户的喜好定制css。
``netjsongraph\u node\u expiration``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+——+——+——+——————+—————————————————————————————————————————————————————————————————————————————-——+
**默认值**:``false``
+——+——+——+————+——+——+
这取决于
``netjsongraph_link_expiration``是否已启用。
用整数替换``false``以启用该功能。
/>
*在django项目中创建一个目录,并将其完整路径放在``templates['dirs']``,
可以在django``settings.py``文件中找到该目录
*创建名为``netjsongraph``的子目录,并添加所有应覆盖默认``netjsongraph/*``模板的模板ates
*使用要覆盖的模板文件的相同名称创建一个模板文件
:重写`<;script>;``tag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
下面是一个关于如何更改传递给`netjsongraph.js<;https://github.com/netjson/netjsongraph.js>;``的javascript选项的分步指南,请记住用
项目的绝对文件系统路径。
**第1步**:在`<;项目路径>;/模板/netjsongraph``
**第2步**:打开``settings.py``和edit"templates['dirs']``设置使其看起来像下面的示例:
…代码块::python
为了简洁起见,省略了所有其他行…
}
]
**第3步**:在
新的`<;项目路径>;/模板/netjsongraph/``目录中创建名为``netjsongraph script.html``的新文件,例如:
。代码块::html
<;!--<;project_path>;/templates/netjsongraph/netjsongraph-script.html-->;
<;script>;
窗口。 窗口。 窗口。加载netjsongraph=函数(图形){
=graph window.njg_default_url_
d3.select("svg").remove();
d3.select(".njg overlay").remove();
d3.select(".njg metadata").remove();
return d3.netjsongraph(graph,{
el:window.njg_u el_,
//netjsongraph.js的自定义ance:100,
链接强度:0.2,
};
};
window.graph=window.loadNetJsongraph();
window.initTopologyHistory(jquery);
<;/script>;
o-netjsongraph*提供了一组模型、管理类和通用视图,可由第三方应用程序导入、扩展和重用。
若要扩展*django netjsongraph*,**您不能**将其添加到"settings.installed\apps"中,但必须创建自己的应用程序(进入"settings.in安装的应用程序'``),从django netjsongraph导入基类并添加自定义项。
扩展模型
^^^^^^^^^^^^^^^^^^
此示例提供了如何扩展
*django netjsongraph*
代码块::自定义"network"应用程序的python
models.py
bstractsnapshot
来自django_netjsongraph.base.topology导入抽象拓扑
组织
class organizationmixin(models.model):
organization=models.foreignkey('organization.organization')
class meta:
abstract=true
class topology(organizationmixin,abstracttopology):
def clean(self):
这里是您自己的验证逻辑
pass
class meta(abstract topology.meta):
abstract=false
class node(abstractnode):
topology=models.foreignkey('topology')
class meta:
abstract=false
class link(abstractlink):
topology=models.foreignkey('topology')
source=models.foreignkey('node',
related戋u name='source戋link戋set')
target=models.foreignkey('node',
related_name='source_target_set')
class meta:
abstract=false
class snapshot(orgmixin,abstractsnapshot):
topology=models.foreignkey('topology.topology',on_delete=models.cascade)
class meta(abstractsnapshot.meta):
abstract=false
并向注册您的模型。
…代码块:python
拓扑管理信息)
这些是您的自定义模型
来自。模型导入链接、节点、拓扑
class拓扑管理信息(abstractTopologyAdmin):
model=topology
class nodeadmin(abstractnodeadmin):
model=node
kadmin(abstractlinkadmin):
model=link
admin.site.register(link,linkadmin)
admin.site.register(node,nodeadmin)
admin.site.register(topology,topologyadmin)
扩展api视图
^^^^^^^^^^^^^^^^^^^^^^^^^^^
从基础上讲,您可能还想尝试重用api视图:
…代码块::python
拓扑视图)
class networkcollectionview(basenetworkcollectionview):
queryset=topology.objects.filter(published=true)
class networkgraphview(basenetworkgraphview):
queryset=topology.objects.filter(published=true)
model=topology
类networkgraphhistoryview(basenetworkgraphhistoryview):
topology\u model=topology
snapshot\u model=snapshot
network collection=network collection view.as\view()
网络图=network graph view.as_view()
网络图=networkgraphhistoryview.as_view()
接收拓扑图=receivetopologyview.as_view()
api url
^^^^^^^^^^
使用"get-api-url"函数的url逻辑。把这个放到你的api"url.py"中:
…代码块:python
导入视图
urlpatterns=get_api_URL(视图)
代码块::python
topology detail view(basetopologydetailview):
topology\u model=topology
topology\u list=topologyListView.as\u view()
topology\u detail=topologydetailview.as\u view()
visualizer url
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
isualizer视图中,可以使用"get visualizer"url函数避免重复url逻辑。把这个放到可视化工具"url.py"中。代码块:python
导入视图
urlpatterns=get_visualizer_url(视图)
扩展appconfig
^^^^^^^^^^^^^^^^^^^
您可能也希望重用*django netjsongraph*的"appconfig"类:
。代码块::python
from django_netjsongraph.apps import djangonetjsongraphconfig
class myownconfig(djangonetjsongraphconfig):
name='yourapp'
label='yourapp'
installing for development地点:
…代码块::shell
sudo apt get install sqlite3 libsqlite3 dev
安装分叉回购:
……代码块::shell
git clone git://github.com/<;your懔fork>;/django netjsongraph
cd django netjsongraph/
python setup.py develop
安装测试要求:
……代码块::shell
pip install-r requirements test.txt
>创建数据库:
…代码块::shell
cd tests/
./manage.py migrate
./manage.py createsuperuser
代码块::shell
./manage.py runserver
代码块::shell
./runtests.py
contribution
----
首先,感谢您抽出时间阅读这些指南。
尝试遵循这些指南对于减少浪费和避免误解非常重要。
1.确保您的更改符合"项目目标"2。如果您发现一个bug,请发送一个带有补丁
3的失败测试。如果要添加新功能,请在
`issue tracker<;https://github.com/netjson/django netjsongraph/issues>;4中宣布您的意图。派生此repo并按照
"安装以进行开发"5中的说明进行安装。遵循"pep8,python代码的样式指南"6。编写代码
7。为代码编写测试
8。确保所有测试通过
9。确保测试覆盖率不低于90%
10。记录您的更改
11。发送拉取请求
…_ pep8,python代码的样式指南:http://www.python.org/dev/peps/pep-0008/
。_ ninux-dev邮件列表:http://ml.ninux.org/mailman/listinfo/ninux-dev
----
请参阅"更改"https://github.com/netjson/django netjsongraph/blob/master/changes.rst>;`.
许可证
-
请参阅"许可证"<;https://github.com/netjson/django-netjsongraph/blob/master/license>;`.
此项目在其源代码中捆绑了第三方javascript库:
-`d3.js(bsd-3-clause)<;https://github.com/netjson/django netjsongraph/blob/master/django netjsongraph/static/netjsongraph/lib/d3.min.js>;` `
========
图片::https://travis ci.org/netjson/django netjsongraph.svg
:目标:https://travis ci.org/netjson/django netjsongraph
…图片::https://coveralls.io/repos/netjson/django netjsongraph/badge.svg
:目标:https://coveralls.io/r/netjson/django netjsongraph
。图片::https://requires.io/github/netjson/django-netjsongraph/requirements.svg?branch=master
:目标:https://requires.io/github/netjson/django-netjsongraph/requirements/?branch=master
:alt:需求状态
…图片::https://badge.fury.io/py/django netjsongraph.svg
:目标:http://badge.fury.io/py/django netjsongraph
图片::https://img.shields.io/gitter/room/nw js/nw.js.svg?style=flat square
:目标:https://gitter.im/openwisp/general
----
>可重复使用的django应用程序,用于收集和可视化网络拓扑。
……图片::https://raw.githubusercontent.com/netjson/django netjsongraph/master/docs/images/visualizer.png
…图片::https://raw.githubusercontent.com/netjson/django netjsongraph/master/docs/images/admin.png
…目录::**目录**:
:反向链接:无
:深度:3
----
->当前功能
----
**网络拓扑采集器**支持不同格式:
-netjson网络图
-olsr(jsoninfo/txtinfo)
-batman-adv(jsondoc/txtinfo)
-bmx6(q6m)
-cnml 1.0
-openvpn
-可以通过基于"netjsongraph.js<;https://github.com/netjson/netjsongraph.js>;"的"指定自定义解析器"添加其他格式`_
***简单的http api**,以"netjson<;http://netjson.org>;` networkgraph*格式公开数据
***管理接口**,允许轻松管理、审核、可视化和调试拓扑及其相关数据(节点、链接)
***从多个节点接收拓扑**pology history**:允许保存可在前端查看的每个拓扑的每日快照
project goals
----
*使您可以轻松地可视化"netdiff<;https://github.com/ninuxorg/netdiff>;支持的格式的网络拓扑数据POLOGY数据通过*netjson networkgraph*格式的restful资源
*易于集成到更大的django项目中以提高可重用性
*易于通过提供抽象模型来扩展其模型(**在这一点上需要改进**)
*提供自定义或替换可视化工具(**在这一点上需要改进**)
*保持核心非常简单
*提供扩展默认行为的方法
*鼓励将新功能作为扩展发布
通过"openwisp<;http://openwisp.org>;` `项目:
`ansible-openwisp2<;https://github.com/openwisp/ansible-openwisp2>;` ` `.
确保遵循以下部分中说明的操作:`启用网络拓扑
模块<;https://github.com/openwisp/ansible-openwisp2启用网络拓扑模块代码块::shell
install development version
代码块::shell
pip安装https://github.com/netjson/django netjsongraph/tarball/master
代码块::shell
pip install-e git+git://github.com/netjson/django netjsongraph egg=django netjsongraph
有限公司de block::shell
git clone git@github.com:<;your懔fork>;/django netjsongraph.git
cd django netjsongraph
python setup.py develop
安装程序(集成到现有django项目中)
----------
``以及从"django"netjsongraph"到"已安装的应用程序"`:
…代码块::python
installed廑apps=[
需要):
…代码块::python
from django.conf.url导入include,url
from django_netjsongraph.api导入url as netjsongraph_api
from django_netjsongraph.visualizer导入url as netjsongraph_visualizer
urlpatterns=[
url(r'^api/,include(netjsongraph_api)),
url(r'',include(netjsongraph_visualizer)),
]
>创建数据库表::
./manage.py migrate
management命令opology url(显示网络拓扑的文件的url)已经添加到admin中,可以使用"update_topology"管理命令收集数据并开始播放网络图::
./manage.py update_topology
接受一个``--label``参数,该参数将用于在
拓扑标签中搜索,例如::
./manage.py update\u topology--label mytopology
``save\u snapshot``
^^^^^^^^^^^^^^^^^^^^^^^
可用于将来查看网络拓扑图::
./manage.py save_snapshot
management命令接受一个`--label``参数,该参数将用于搜索
拓扑标签,例如::
./manage.py save_snapshot--label mytopology
logging
----
egies
——
收集拓扑信息的方法主要有两种:
**fetch**策略
**receive**策略
拓扑数据将从URL获取。
当不再检测到某些链接时,它们将被直接标记为"向下"。
在post-http请求的有效负载中接收数据;
当接收到这样的请求时,首先根据
topology``键检查它的``key``参数。
强烈建议将"topology"实例的"expiration\u time"设置为"0"(秒),这样
系统的工作方式与**获取策略**一样,唯一的区别是
数据是由一个节点发送的,而不是由收集器获取的。
在多个节点上,您**应该**将"拓扑"实例的"过期时间"设置为略高于节点发送拓扑所用的时间间隔的值,只有在有一段时间未检测到链接时,才会将其标记为"关闭"。此机制允许可视化即使网络被分成几个部分,缺点是检测脱机的链接需要更长的时间。
|``名单``` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `^
+———-——+——+
**类型**:``str```
+——+——+——+
**默认值**:``none``
+——+——+——+——+——+——
表示初始化时要导入的python模块的字符串。
我们的航空公司。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
=--------+
//` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `正在创建拓扑URL。
``netjsongraph ``` netjsongraph ````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^ ^
```````````````````````````````````````````````````````````````````````````````>如果某个链接关闭了更多天如果没有这个号码,它将被
``update\u topology``管理命令删除。
`set this to``false``将禁用此功能。
``netjsongraph\u visualizer\u css``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+——+————+————
:``str```
+——+——+————+——+
**默认值**:``netjsongraph/css/style.css``
+——+——+——+————————————————————————————————————————————————————————允许根据用户的喜好定制css。
``netjsongraph\u node\u expiration``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+——+——+——+——————+—————————————————————————————————————————————————————————————————————————————-——+
**默认值**:``false``
+——+——+——+————+——+——+
这取决于
``netjsongraph_link_expiration``是否已启用。
用整数替换``false``以启用该功能。
/>
*在django项目中创建一个目录,并将其完整路径放在``templates['dirs']``,
可以在django``settings.py``文件中找到该目录
*创建名为``netjsongraph``的子目录,并添加所有应覆盖默认``netjsongraph/*``模板的模板ates
*使用要覆盖的模板文件的相同名称创建一个模板文件
:重写`<;script>;``tag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
下面是一个关于如何更改传递给`netjsongraph.js<;https://github.com/netjson/netjsongraph.js>;``的javascript选项的分步指南,请记住用
项目的绝对文件系统路径。
**第1步**:在`<;项目路径>;/模板/netjsongraph``
**第2步**:打开``settings.py``和edit"templates['dirs']``设置使其看起来像下面的示例:
…代码块::python
为了简洁起见,省略了所有其他行…
}
]
**第3步**:在
新的`<;项目路径>;/模板/netjsongraph/``目录中创建名为``netjsongraph script.html``的新文件,例如:
。代码块::html
<;!--<;project_path>;/templates/netjsongraph/netjsongraph-script.html-->;
<;script>;
窗口。
=graph window.njg_default_url_
d3.select("svg").remove();
d3.select(".njg overlay").remove();
d3.select(".njg metadata").remove();
return d3.netjsongraph(graph,{
el:window.njg_u el_,
//netjsongraph.js的自定义ance:100,
链接强度:0.2,
};
};
window.graph=window.loadNetJsongraph();
window.initTopologyHistory(jquery);
<;/script>;
o-netjsongraph*提供了一组模型、管理类和通用视图,可由第三方应用程序导入、扩展和重用。
若要扩展*django netjsongraph*,**您不能**将其添加到"settings.installed\apps"中,但必须创建自己的应用程序(进入"settings.in安装的应用程序'``),从django netjsongraph导入基类并添加自定义项。
扩展模型
^^^^^^^^^^^^^^^^^^
此示例提供了如何扩展
*django netjsongraph*
代码块::自定义"network"应用程序的python
models.py
bstractsnapshot
来自django_netjsongraph.base.topology导入抽象拓扑
组织
class organizationmixin(models.model):
organization=models.foreignkey('organization.organization')
class meta:
abstract=true
class topology(organizationmixin,abstracttopology):
def clean(self):
这里是您自己的验证逻辑
pass
class meta(abstract topology.meta):
abstract=false
class node(abstractnode):
topology=models.foreignkey('topology')
class meta:
abstract=false
class link(abstractlink):
topology=models.foreignkey('topology')
source=models.foreignkey('node',
related戋u name='source戋link戋set')
target=models.foreignkey('node',
related_name='source_target_set')
class meta:
abstract=false
class snapshot(orgmixin,abstractsnapshot):
topology=models.foreignkey('topology.topology',on_delete=models.cascade)
class meta(abstractsnapshot.meta):
abstract=false
并向注册您的模型。
…代码块:python
拓扑管理信息)
这些是您的自定义模型
来自。模型导入链接、节点、拓扑
class拓扑管理信息(abstractTopologyAdmin):
model=topology
class nodeadmin(abstractnodeadmin):
model=node
kadmin(abstractlinkadmin):
model=link
admin.site.register(link,linkadmin)
admin.site.register(node,nodeadmin)
admin.site.register(topology,topologyadmin)
扩展api视图
^^^^^^^^^^^^^^^^^^^^^^^^^^^
从基础上讲,您可能还想尝试重用api视图:
…代码块::python
拓扑视图)
class networkcollectionview(basenetworkcollectionview):
queryset=topology.objects.filter(published=true)
class networkgraphview(basenetworkgraphview):
queryset=topology.objects.filter(published=true)
类networkgraphhistoryview(basenetworkgraphhistoryview):
topology\u model=topology
snapshot\u model=snapshot
network collection=network collection view.as\view()
网络图=network graph view.as_view()
网络图=networkgraphhistoryview.as_view()
接收拓扑图=receivetopologyview.as_view()
api url
^^^^^^^^^^
使用"get-api-url"函数的url逻辑。把这个放到你的api"url.py"中:
…代码块:python
导入视图
urlpatterns=get_api_URL(视图)
代码块::python
topology detail view(basetopologydetailview):
topology\u model=topology
topology\u list=topologyListView.as\u view()
topology\u detail=topologydetailview.as\u view()
visualizer url
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
isualizer视图中,可以使用"get visualizer"url函数避免重复url逻辑。把这个放到可视化工具"url.py"中。代码块:python
导入视图
urlpatterns=get_visualizer_url(视图)
扩展appconfig
^^^^^^^^^^^^^^^^^^^
您可能也希望重用*django netjsongraph*的"appconfig"类:
。代码块::python
from django_netjsongraph.apps import djangonetjsongraphconfig
class myownconfig(djangonetjsongraphconfig):
name='yourapp'
label='yourapp'
installing for development地点:
…代码块::shell
sudo apt get install sqlite3 libsqlite3 dev
安装分叉回购:
……代码块::shell
git clone git://github.com/<;your懔fork>;/django netjsongraph
cd django netjsongraph/
python setup.py develop
安装测试要求:
……代码块::shell
pip install-r requirements test.txt
>创建数据库:
…代码块::shell
cd tests/
./manage.py migrate
./manage.py createsuperuser
代码块::shell
./manage.py runserver
代码块::shell
./runtests.py
contribution
----
首先,感谢您抽出时间阅读这些指南。
尝试遵循这些指南对于减少浪费和避免误解非常重要。
1.确保您的更改符合"项目目标"2。如果您发现一个bug,请发送一个带有补丁
3的失败测试。如果要添加新功能,请在
`issue tracker<;https://github.com/netjson/django netjsongraph/issues>;4中宣布您的意图。派生此repo并按照
"安装以进行开发"5中的说明进行安装。遵循"pep8,python代码的样式指南"6。编写代码
7。为代码编写测试
8。确保所有测试通过
9。确保测试覆盖率不低于90%
10。记录您的更改
11。发送拉取请求
…_ pep8,python代码的样式指南:http://www.python.org/dev/peps/pep-0008/
。_ ninux-dev邮件列表:http://ml.ninux.org/mailman/listinfo/ninux-dev
请参阅"更改"https://github.com/netjson/django netjsongraph/blob/master/changes.rst>;`.
许可证
-
请参阅"许可证"<;https://github.com/netjson/django-netjsongraph/blob/master/license>;`.
此项目在其源代码中捆绑了第三方javascript库:
-`d3.js(bsd-3-clause)<;https://github.com/netjson/django netjsongraph/blob/master/django netjsongraph/static/netjsongraph/lib/d3.min.js>;` `