使用Django作为内容管理器的科学数据库接口。

espressodb的Python项目详细描述


Python VersionPyPI VersionTestsDocumentation StatusPublication

浓缩咖啡

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视图。 Docpage example 因为网页也使用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——一个组织晶格量子色动力学研究的数据库时开发的。 我们打算创建一个数据库用于多种目的,例如优化依赖于架构的多个节点作业的调度,并帮助最终的分析过程。 出于这个原因,我们开始抽象我们的思维,如何组织物理对象。在

我们的目标是让我们的工作流程有一个容易共享和完全可复制的快照,同时又灵活又不过分限制自己——最终科学充满了惊喜。 我们遇到的挑战是:

  1. 我们如何编写一个将来可以轻松扩展的表结构?在
  2. 我们如何编写一个数据库,使不熟悉数据库概念的用户可以开始使用这个工具而不费吹灰之力?在

LatteDB的核心模块EspressoDB正试图解决这些挑战。在

谁负责?在

与相关技术比较

  1. SQLAlchemy-SQLAlchemy是一个最小的低级pythonsql接口。虽然它也提供了一个ORM(数据映射器实现),但建立项目、建立对数据库的访问和迁移更改都不是自动的,因此与现有项目的接口不如与现有Django项目的接口友好。在
  2. Django-Django是EspressoDB的父代。它使用活动记录实现(表行和Python对象之间的直接对应)。虽然Django旨在充当一个web框架,但EspressoDB重新解释并扩展了Django以直接用于计算项目。为此,EspressoDB简化了项目创建,自动化了设置组件,并提供了多用户场景所需的额外交叉检查。在

贡献在

感谢您的参与!有很多方法可以为这个项目做贡献。 Get started here。在

许可证

BSD三条款许可证。另请参见LICENSE文件。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在使用mutator方法时遇到问题   java应用程序是否连接到服务器   java OutputStreamWriter不重写文件   java如何将捕获的异常与异步任务安卓中的标准异常进行比较?   java初始化和声明对象和方法   用于上传个人资料图片的java ActivityResultLauncher   如何检查Java字符串的第二个数字是否在1到5之间   googleappengine和Java版本   java如何获取eclipse tomcat配置文件夹路径?   在Android上使用GSON时出现java垃圾收集器问题   如何在java中逐层显示图像   JavaSpring数据规范动态条件   java Spring MongoDB在请求时非常慢   java如何在图像滑动视图上进行循环?   java我在函数中有一个空指针异常,不知道如何修复它   通过java运行的Cassandra Talend作业引发错误   java ConcurrentHashMap。initTable(),为什么检查表两次为空?