nodb不是数据库..但看起来有点像。
nodb的Python项目详细描述
nodb
====
但看起来有点像!*
**nodb**是一个非常简单的pythonic对象存储,基于亚马逊的
s3静态文件存储。
它对于**原型制作**、**临时黑客**和(可能)甚至对于
**zappa<;https://github.com/miserlou/zappa>;``应用程序**来说都是非常有用的,
功能
——
-无架构!
-服务器更少!
-使用s3作为数据存储。
-使用"cpickle"加载到本机python对象
-可以使用json作为不受信任数据的序列化格式
-基于本地文件存储的缓存
-便宜(ish)!
-快速(ish)!(尤其是lambda)
对同一索引进行写入和后续读取的000个
(500个并发)请求的平均时间为400毫秒。这对于
许多应用程序来说都是不可接受的,即使那些没有稀疏数据的应用程序也是如此,尽管
这是首选。
installation
----
**nodb**可以通过"pip"轻松安装,例如:
:
$pip install nodb
警告!
——
**nodb**默认为**不安全**!在将"serializer"设置为"json"之前,不要对不受信任的数据使用它!
使用
----
**nodb**非常容易使用!
您只需创建一个nodb对象,将它指向您的bucket并告诉它要索引的
字段。代码::python
from nodb import nodb
nodb.bucket="my-s3-bucket"
nodb.index="name"
…代码::python
保存一个对象!
user={"name":"jeff","age":19}
nodb.save(user)true
加载我们的对象!
user=nodb.load("jeff")
print user['age']\19
注意导入和
配置是相同的!
…代码::python
class user(object):
name=none
age=none
def print\u name(self):
print"嗨,我是"+self.name+"!"
new嫒user=user()
new嫒user.name="jeff"
new嫒user.age=19
nodb.save(new嫒user)true
jeff=nodb.load("jeff")
jeff.print嫒name();嗨,我是杰夫!
高级用法
----
不同的序列化程序
~~~~~~~~~~~~~~~~~~~~~~~~
要使用更安全的非pickle序列化程序,只需将json设置为序列化程序:
。代码::python
nodb=nodb()
nodb.serializer="json"
``加载``,就像这样:
…代码::python加载我们的对象和metainfo!
user,datetime,uuid=nodb.load("jeff",metainfo=true)
您还可以为不存在的值传递"default"参数。
代码::python
user=nodb.load("jeff",默认值为{}){}
可读索引
~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果希望能够通过aws控制台调试
,请将"人类可读索引"设置为true:
。代码::python
nodb.human_readable_index=true
caching
~~~~~~~
代码::python
nodb.cache=true
todo(可能?)
----
-**安慰剂试验**
-**python3**支持
-本地文件存储
-查询范围(仅数字ID)等等
-不同的序列化程序
-自定义序列化程序
-多个索引
-压缩
-存储桶管理
-伪锁定
-性能/负载测试
相关项目
----
-`zappa<;https://github.com/miserelou/zappa>;`_-python的无服务器框架!
-`k.e.v.<;https://github.com/capless/kev>;``基于redis、s3和s3/redis混合后端的键值存储的python orm。
所以还有很多工作要做。
我们非常欢迎您的贡献!
请在提交修补程序之前提交讨论票。pull
请求应该以"master"为目标,如果合并,nodb应该保持"shippable"
状态。
你可以在他们的自述文件中学习使用。
测试套件将由"travis
ci<;https://travis ci.org/miserlou/nodb>;""在打开拉取请求后运行。
请将与您的更改相关的github问题或拉取请求url包含在代码中作为注释
(`example<;https://github.com/miserelou/zappa/blob/fae2925431b820eaedf088a63022e4120a29f89/zappa/zappa.py l241-l243>;````````这对项目的可维护性有很大帮助,因为它允许我们跟踪
用例并解释决策。
许可证
----
(c)Rich Jones 2017,麻省理工学院许可证。原始:html
<;p align="center">;
…原始:html
<;/p>;
…|构建状态图像::https://travis ci.org/miserlou/nodb.svg
:目标:https://travis ci.org/miserlou/nodb
…|覆盖范围图像::https://img.shields.io/covertails/miserlou/nodb.svg
:目标:https://covertails.io/github/miserlou/nodb
。| pypi图像::https://img.shields.io/pypi/v/nodb.svg
:目标:https://pypi.python.org/pypi/nodb
…|松弛图像::https://img.shields.io/badge/chat-slack-ff69b4.svg
:目标:https://slack.zappa.io/
…| gun.io图像::https://img.shields.io/badge/made%20by gun.io blue.svg
:目标:https://gun.io/
…| patreon图像::https://img.shields.io/badge/support patreon brightgreen.svg
:目标:https://patreon.com/zappa
====
但看起来有点像!*
**nodb**是一个非常简单的pythonic对象存储,基于亚马逊的
s3静态文件存储。
它对于**原型制作**、**临时黑客**和(可能)甚至对于
**zappa<;https://github.com/miserlou/zappa>;``应用程序**来说都是非常有用的,
功能
——
-无架构!
-服务器更少!
-使用s3作为数据存储。
-使用"cpickle"加载到本机python对象
-可以使用json作为不受信任数据的序列化格式
-基于本地文件存储的缓存
-便宜(ish)!
-快速(ish)!(尤其是lambda)
对同一索引进行写入和后续读取的000个
(500个并发)请求的平均时间为400毫秒。这对于
许多应用程序来说都是不可接受的,即使那些没有稀疏数据的应用程序也是如此,尽管
这是首选。
installation
----
**nodb**可以通过"pip"轻松安装,例如:
:
$pip install nodb
警告!
——
**nodb**默认为**不安全**!在将"serializer"设置为"json"之前,不要对不受信任的数据使用它!
使用
----
**nodb**非常容易使用!
您只需创建一个nodb对象,将它指向您的bucket并告诉它要索引的
字段。代码::python
from nodb import nodb
nodb.index="name"
…代码::python
保存一个对象!
user={"name":"jeff","age":19}
nodb.save(user)true
加载我们的对象!
user=nodb.load("jeff")
print user['age']\19
注意导入和
配置是相同的!
…代码::python
class user(object):
name=none
age=none
def print\u name(self):
print"嗨,我是"+self.name+"!"
new嫒user=user()
new嫒user.name="jeff"
new嫒user.age=19
nodb.save(new嫒user)true
jeff=nodb.load("jeff")
jeff.print嫒name();嗨,我是杰夫!
高级用法
----
不同的序列化程序
~~~~~~~~~~~~~~~~~~~~~~~~
要使用更安全的非pickle序列化程序,只需将json设置为序列化程序:
。代码::python
nodb=nodb()
nodb.serializer="json"
``加载``,就像这样:
…代码::python加载我们的对象和metainfo!
user,datetime,uuid=nodb.load("jeff",metainfo=true)
您还可以为不存在的值传递"default"参数。
代码::python
user=nodb.load("jeff",默认值为{}){}
可读索引
~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果希望能够通过aws控制台调试
,请将"人类可读索引"设置为true:
。代码::python
nodb.human_readable_index=true
caching
~~~~~~~
代码::python
nodb.cache=true
todo(可能?)
----
-**安慰剂试验**
-**python3**支持
-本地文件存储
-查询范围(仅数字ID)等等
-不同的序列化程序
-自定义序列化程序
-多个索引
-压缩
-存储桶管理
-伪锁定
-性能/负载测试
相关项目
----
-`zappa<;https://github.com/miserelou/zappa>;`_-python的无服务器框架!
-`k.e.v.<;https://github.com/capless/kev>;``基于redis、s3和s3/redis混合后端的键值存储的python orm。
所以还有很多工作要做。
我们非常欢迎您的贡献!
请在提交修补程序之前提交讨论票。pull
请求应该以"master"为目标,如果合并,nodb应该保持"shippable"
状态。
你可以在他们的自述文件中学习使用。
测试套件将由"travis
ci<;https://travis ci.org/miserlou/nodb>;""在打开拉取请求后运行。
请将与您的更改相关的github问题或拉取请求url包含在代码中作为注释
(`example<;https://github.com/miserelou/zappa/blob/fae2925431b820eaedf088a63022e4120a29f89/zappa/zappa.py l241-l243>;````````这对项目的可维护性有很大帮助,因为它允许我们跟踪
用例并解释决策。
许可证
----
(c)Rich Jones 2017,麻省理工学院许可证。原始:html
<;p align="center">;
…原始:html
<;/p>;
…|构建状态图像::https://travis ci.org/miserlou/nodb.svg
:目标:https://travis ci.org/miserlou/nodb
…|覆盖范围图像::https://img.shields.io/covertails/miserlou/nodb.svg
:目标:https://covertails.io/github/miserlou/nodb
。| pypi图像::https://img.shields.io/pypi/v/nodb.svg
:目标:https://pypi.python.org/pypi/nodb
…|松弛图像::https://img.shields.io/badge/chat-slack-ff69b4.svg
:目标:https://slack.zappa.io/
…| gun.io图像::https://img.shields.io/badge/made%20by gun.io blue.svg
:目标:https://gun.io/
…| patreon图像::https://img.shields.io/badge/support patreon brightgreen.svg
:目标:https://patreon.com/zappa