使用Django作为内容管理器的科学数据库接口。
espressodb的Python项目详细描述
浓缩咖啡
EspressoDB是一个Python框架,旨在组织(关系)数据而不失去灵活性。 它的目标是直观和快速。在
更具体地说,EspressoDB构建在对象关系映射web框架Django之上,并添加了附加的便利功能,以便轻松地设置项目。 此外,EspressoDB提供了一个扩展的数据一致性检查框架,使用户可以自由定义数据表及其关系,这些关系唯一地反映了底层计算。在
浓缩咖啡提供什么?在
EspressoDB提供了一个易于使用的数据库接口,帮助您快速做出明智的决定。在
一旦使用EspressoDB创建了Python项目(例如,my_project
)
- 您可以在所有Python应用程序中使用它来查询数据。例如,
importnumpyasnpfrommy_project.hamiltonian.modelsimportContactasContactHamiltonian# Ask the database for specific entrieshamiltonian=ContactHamiltonian.objects.filter(n_sites=20).first()# Use class methods for an intuitive interface## Print a formatted summary of the table entryprint(hamiltonian)## Allocate an actual matrix for the given entry and use it in computationseigs,vecs=np.linalg.eigh(hamiltonian.matrix)
models
类是Python中的常规类。 为了方便起见,他们可以提供额外的方法。 此外,他们知道如何与数据库对话,例如,你可以查询(读)和更新(写)你的数据到一个中央数据库。在 - 您可以生成汇总表和数据的web视图。 因为网页也使用pythonapi,所以您可以使用已经开发的代码完全定制视图。 E、 你可以在浏览器中自动绘制和显示摘要。 如果你愿意,你也可以公开你的web应用(具有不同的可访问性层)并与其他人共享结果。在
另请参阅Documentation,以获取更详细的使用说明。在
如何安装?在
EspressoDB可通过pip安装:
^{pr2}$运行测试
因为EspressoDB是关于创建项目的,所以测试是为示例项目实现的。 要运行测试,请克隆此存储库,安装依赖项:
pip install . pip install -r requirements-dev.txt pip install -r example/my_project/requirements.txt
并在example/my_project
中运行pytest
(或常规测试):
cd example/my_project pytest [--cov=espressodb]
背后的故事是什么?在
EspressoDB是在我们创建LatteDB——一个组织晶格量子色动力学研究的数据库时开发的。 我们打算创建一个数据库用于多种目的,例如优化依赖于架构的多个节点作业的调度,并帮助最终的分析过程。 出于这个原因,我们开始抽象我们的思维,如何组织物理对象。在
我们的目标是让我们的工作流程有一个容易共享和完全可复制的快照,同时又灵活又不过分限制自己——最终科学充满了惊喜。 我们遇到的挑战是:
- 我们如何编写一个将来可以轻松扩展的表结构?在
- 我们如何编写一个数据库,使不熟悉数据库概念的用户可以开始使用这个工具而不费吹灰之力?在
LatteDB的核心模块EspressoDB正试图解决这些挑战。在
谁负责?在
与相关技术比较
- SQLAlchemy-SQLAlchemy是一个最小的低级pythonsql接口。虽然它也提供了一个ORM(数据映射器实现),但建立项目、建立对数据库的访问和迁移更改都不是自动的,因此与现有项目的接口不如与现有Django项目的接口友好。在
- Django-Django是EspressoDB的父代。它使用活动记录实现(表行和Python对象之间的直接对应)。虽然Django旨在充当一个web框架,但EspressoDB重新解释并扩展了Django以直接用于计算项目。为此,EspressoDB简化了项目创建,自动化了设置组件,并提供了多用户场景所需的额外交叉检查。在
贡献在
感谢您的参与!有很多方法可以为这个项目做贡献。 Get started here。在
许可证
BSD三条款许可证。另请参见LICENSE文件。在
- 项目
标签: