基于图形的数据挖掘工具
curious的Python项目详细描述
好奇遍历关系数据库中的关系。好奇的 查询允许用户探索对象之间的关系,遍历 递归关系,并在松散连接的数据库之间跳转。 好奇还为对象提供了一个json接口。用户和 程序员可以在分析脚本和 应用。
好奇支持以数据为中心的应用程序构建模型;好奇 查询公开规范化的关系数据,减少用户界面对用户界面的依赖性 提供非规范化数据的特定API端点。更改什么数据 用户界面不再需要更改特定于用户界面的端点。
好奇可以很好地处理具有许多关系的深层数据模型。一个 好奇的查询可以遍历10个类似外键的关系 很有效率。好奇的查询总是对对象集进行操作,并且可以 通过与大量对象的关系连接少量对象 然后通过另一种关系 对象再次设置为较小的集合。例如,把书给作者送到国家 居住地。与graphql不同,奇怪的输出关系 对象,而不是不断增长的JSON表示树 物体。
示例
Book.last(10) Book.author_set Author.country(continent__name="North America")
查询语言
查询语言允许通过识别模型之间的关系来遍历模型, 通过django模型中的外键,或任意id映射函数。好奇的询问 是一组用空格分隔的术语,通过关系将模型连接在一起。
使用这些关系原语可以有几种“连接”:
- 传统的内部连接Book Book.author_set
- a左外连接:Book.last(10) ?(Book.author_set)
- 循环连接:Parent.children_*
此外,在连接的每个阶段,都可能发生筛选操作:
- 按Django field lookups:Book Book.author_set(id__in=[2,3,4]) 筛选
- 按子查询筛选:Book +(Book.author_set(id__in=[2,3,4]))
- 按排除子查询过滤Book -(Book.author_set(id__in=[2,3,4]))
最后,关系可以生成计数
配置好奇
import myapp.models from curious import model_registry def register(): model_registry.register(myapp.models)
然后在django应用程序启动时包含register。
使用好奇
关闭CSRF。将其部署为django应用程序。
编写自定义关系
使用filter和deferred to real函数。
开发
需要Docker。使用提供的docker-compose.yml文件和makefile启动容器 通过运行make image。这将为您的用户创建一个具有正确git配置的图像, 所以很容易释放。您应该运行的所有命令都定义为 Makefile作为目标。除了image之外的所有目标都应该在 Docker容器,但可以从主机运行,方法是将-ext附加到它们上。为了 例如,要运行测试,可以从容器内部调用make test,也可以从主机调用make test-ext。
如果在开发期间修改静态资产,可以使用 build_assetsmake task,或者通过调用python setup.py build_assets。
./make test-ext
展开
标记提交的部署通过travis ci自动发生在pypi上。碰撞并部署新的 版本,运行make bump/[foo]-ext,其中[foo]是major、minor或patch。那么 git push origin --tags master。