使用sqlite的自以为是的持久性

microcosm-sqlite的Python项目详细描述


微观Sqlite

使用sqlite加载自以为是的数据。

虽然大多数分布式应用程序运行时将使用网络数据存储来实现可变状态, 运行时只读数据的使用模式非常适合sqlite。

特别是,microcosm-sqlite假设应用程序将

  • 预先构建数据集,并将其作为静态工件(例如,在源代码管理中)发布。
  • 在运行时加载数据不可变集,而不将整个数据集加载到内存中

编写模型

持久数据应该使用sqlalchemy的声明性基类。因为不同的数据集 可能在不同的sqlite数据库中提供,每个声明性基类都需要有一个唯一的 名称和单独的引擎配置,通过添加DataSet作为 声明基类:

Base = DataSet.create("some_name")


class SomeModel(Base):
    __tablename__ = "sometable"

    id = Column(Integer, primary_key=True)

使用商店

基本的持久性操作通过存储区抽象出来:

class SomeStore(Store):

    @property
    def model_class(self):
        return SomeModel


 store = SomeStore()
 results = store.search()

配置sqlite

每个DataSet默认使用:memory:存储,但可以通过两种方式进行自定义:

  1. 可以使用自定义路径配置SQLiteBindFactory

    loader = load_from_dict(
        sqlite=dict(
            paths={
                "some_name": "/path/to/database",
            },
        ),
    )
    graph = create_object_graph("example", loader=loader)
    
  2. 入口点可以包含从数据集名称到 返回路径的函数。

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

推荐PyPI第三方库


热门话题
JasperReports中的java对齐项目符号   Jboss中的java类加载问题   Spring引导的java示例,RabbitMQ侦听器用nack响应   java设置http请求的类型   Java数组:使用私有字段的对象访问   java将变量传递到另一个视图:最佳实践   Java图形禁用xor模式   java如何使用安卓设备中存储的mupdf阅读器读取SD卡中存储的pdf文件   java My webapplication在IDE中测试时工作正常,但在Web服务器(tomcat)上不工作会话无效   java如何设置铃声播放的持续时间   寻求用java编写正则表达式的帮助   帆布Java中从右向左的drawText   java可以停止使用httpConnection连接到URL的线程。连接()?   java InputStream在验证javax后为空。xml。验证。验证器;   安卓在一个java类中有多个seekbar,需要为每个seekbar实现每个setOnSeekBarChangeListener吗?   java ConcurrenthashMap与线程安全   Tomcat中java奇怪的JSONString失真   C++ java JNI跨平台构建   java是由:org引起的。usb4java。LoaderException:在classpath/org/usb4java/windowsx86_64/libusb1中找不到本机库。0.dll