Django内存数据库
django-memdb的Python项目详细描述
django内存数据库
这是什么?
允许表保存在内存数据库中的库,并且可以选择 通过将表假脱机到 在启动时读取以填充内存表的表。
它解决了什么问题?
创建具有可选数据持久性的内存表。
如何安装?
pip install django-memdb
添加到django(使用积分器)
# At the bottom of your settings.py file.importdjango_integratordjango_integrator.add_application('django_memdb')
如果您不想使用上述内容,请将应用程序添加到已安装的应用程序中,然后 将apps settings.py和url.py合并到django项目文件中。
我怎么用?
在定义模型时,使用类MIXIN。
例如:
fromdjango.dbimportmodelsfromdjango_memdb.mixinsimportInMemoryDB,PeristentInMemoryDBclassTestModelWithMixin(models.Model,InMemoryDB):text=models.TextField()classTestModelPersistent(models.Model,PeristentInMemoryDB):text=models.TextField()
两个混合器都更像一个标签,用来确定表是否是一个 是否在内存表中,以及表内容是否应存储在 (使用默认数据库)persistentstorage模型。
您可以选择通过附加到 此应用程序提供的信号。下面的示例将添加对数据的压缩 在存储之前:
fromdjango_memdbimportsignalsdefcompress(arguments):"Compress data."# pylint: disable=redefined-variable-typeifarguments['process']==settings.MEMDB_PROCESS_ENCODE:data=arguments['data']data=json.dumps(data)data=data.encode('utf-8')data=zlib.compress(data)arguments['data']=dataelifarguments['process']==settings.MEMDB_PROCESS_DECODE:data=arguments['data']data=zlib.decompress(data)data=data.decode('utf-8')data=json.loads(data)arguments['data']=datadefcallback(sender,**kwargs):# pylint: disable=unused-argument"Just insert a hook."kwargs['kwargs']['processors'].append(compress)signals.store_save.connect(callback)signals.store_load.connect(callback)
警告
内存中的数据库是每个服务器实例的本地数据库,因此如果您有 如果安装程序使用多个服务器和一个django数据库实例,则 与内存中的数据存在同步问题,并且在 使用持久存储。
这是什么执照?
双条款bsd
我怎样才能得到支持?
请使用repo的bug追踪器留下任何问题、反馈, 建议和意见。我会根据我的时间和外表来处理 很有趣。如果您需要担保支持,请通过 发电子邮件以便我们讨论适当的补偿。
签字
我的工作对你有帮助还是有价值?您可以通过以下方式来回报我:
https://paypal.me/MartinHellwig
-或-
https://www.patreon.com/hellwig
谢谢你!