跳转到主要内容

Guillotina Postgresql集成

项目描述

guillotina_asyncom

集成新的Content-type DBFolder的POC

  • DBFolder代表在postgresql上的一个表,与相关的sqlalchemy模型相关联

优点

  • 使用guillotina权限系统
  • 使用guillotina框架。
  • 在上下文中查找视图(一个sqlalchemy对象)
  • 与guillotina gmi接口集成

如何使用

  1. 创建你的常规sqlalchemy模型,例如,从guillotina_asyncom.db导入Base
from guillotina_asyncom.db import Base
import sqlalchemy as sa

@implementer(IModel)
class Model(Base):
    __tablename__ = "extras"

    pk = sa.Column(sa.Integer, primary_key=True)
    value = sa.Column(sa.JSONB)

每次你想要在你的guillotina内容树中添加一个对象时

POST /db/guillotina/
{
    "@type": "DBFolder",
    "id", : "dbmodel",
    "model": "Model"
}

从这里,我们只需使用我们的新端点的guillotina API。

POST /db/guillotina/dbmodel/ { "value": {"prop", "value"} }

GET /db/guillotina/dbmodel/@search GET /db/guillotina/dbmodel/{pk} DELETE /db/guillotina/dbmodel/{pk} PATCH /db/guillotina/dbmodel/{pk}

以为应该通过为实例注册服务来工作...

POST /db/guillotina/dbmodel/{pk}/@requeue

  • 酷功能:它与guillotina_react集成 :)

想法和待办事项

  • 从这里构建一个通用的模型浏览器并不难。所有注册的sqlalchemy模型都位于Base.metadata...只需构建一个小遍历即可

  • 为每个新类型生成预期的模式,可能是在/db/guillotina/dbmodel/@schema上,从声明式sqlalchemy模型中获取

  • 在行上集成权限系统...只需在你的模型中实现一个acl jsonb列。(设置所有者,或任何你想要的..)

  • 事件系统尚未实现,可能可以实现,但需要添加一些新事件。(如果我们使用实际值,将会影响目录)

  • 实现一个丰富的 @search 模型(最后我们可以直接翻译,实际的实现是 sqlalchemy 查询)。还要实现分页,以及其他功能。这将使它与 guillotina_react 集成得更好。

...

您看到的是截断的变更日志。

您可以阅读 变更日志文件 <https://github.com/plone/guillotina/blob/master/CHANGELOG.rst> 获取完整列表。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

guillotina_asyncom-0a1.tar.gz (9.6 kB 查看哈希)

上传时间

构建分布

guillotina_asyncom-0a1-py3-none-any.whl (12.6 kB 查看哈希)

上传时间 Python 3

支持者