sqlalchemy的基本节点/边缘模型
graph-alchem的Python项目详细描述
在SQLAlchemy(以及很快的更多orms)+networkx中绘制节点边缘关系图 整合。
What’s here
一组基本的节点/边抽象+图的多对一关系 用SQLAlchemy在SQL中表示
Using this package
Documentation可在http://graphalchemy.readthedocs.org找到
它使用起来非常简单(还有一些例子)。但现在最好的办法是 阅读SQLAlchemy上的文档
一个非常简单的例子(使用SQLite数据库):
from graphalchemy.sqlmodels import create_base_classes, sqlite_connect from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() Node, Edge = create_base_classes(NodeClass="Node", EdgeClass="Edge", Base=Base) engine, session = sqlite_connect("database.db", metadata=Base.metadata) # be sure to use unicode!! node1 = Node(label=u"First node!") node2 = Node(label=u"Second node!") node3 = Node(label=u"Third node!") edge1 = Edge.connect_nodes(node1, node2) edge2 = Edge.connect_nodes(node1, node3) session.add_all([node1, node2, node3, edge1, edge2]) session.commit() # now we can graph it import networkx as nx G = nx.Graph() G.add_edges_from([edge1, edge2]) # now we can draw this! (if you had pylab, matplotlib, etc)
你会得到一张像这样的照片(很明显,我们没有添加所有的特征 但你明白了):
显然,这是一个很小的例子,但是它展示了如何利用 SQL连接、查询等的强大功能,而且非常容易
What’s going to be here
- networkx集成
- 测试多个sql数据库和适配器
- google应用程序引擎的摘要,mongoalchemy,可能还有django orm
- 在networkx和web服务请求之间的适配器(可能?)
Testing coverage
基本测试套件,可获得100%的sqlalchemy模型和基础线覆盖率 模型(仍然缺少烧瓶SQLAlchemy的测试)我只在sqlite上运行过 到目前为止,但据推测,它应该可以与其他sql数据库一起正常工作(因为 它使用SQLAlchemy的declarative base)