micromongo

软件截图:
micromongo
软件详细信息:
版本: 0.1.4
上传日期: 14 Apr 15
开发: Jason Moiron
许可: 免费
人气: 2

Rating: nan/5 (Total Votes: 0)

micromongo大约pymongo一个微小层,它允许您创建可以执行验证,允许网点存取文件,自动包装queryset的结果,并给你的前/后保存挂钩简单的ORM风格类。
它的设计充分考虑microframeworks,但应用程序和框架无关。这是为了简化pymongo的使用,并提供工具,共同的成语,而不是从你的数据结构掩盖pymongo或MongoDB中。
欢迎您打开的问题或发送拉要求对micromongo的github上
micromongo使得简化,可能不适合你的名字的几个设计决策:
  -   micromongo维护一个单一的全球连接,所以你不能有一个连接到多个MongoDB的服务器机型
  -  有型号名称和文件属性的名称不会与micromongo模型工作的福;这将包括在完整的文档
  -  你只能有每收集一个模型
入门
与micromongo开始,只需将其导入:
>>>从micromongo进口连接,型号
>>> C =连接()
连接采用相同的参数pymongo的Connection对象,并表现几乎相同,不同之处在于它试图自动返回包裹在适当的模型类的查询结果。您通过此调用创建的连接对象将被缓存和使用的各种ORM式的设施,如Model.save(),Model.proxy等,如果你想要一个干净的,标准的Connection对象,你可以得到一个很容易:
>>>从micromongo进口clean_connection
>>>清洁= clean_connection()
需要注意的是clean_connection不带参数,并会一直使用相同的设置作为当前micromongo连接返回一个干净的Connection类。
这些连接对象,您可以创建数据库或做任何你会与正常pymongo对象:
>>> DB = c.test_db
>>>集合= db.test_collection
>>> collection.save({“文档ID”:1,“失败”:虚假})
>>> collection.find_one()
{u'_id“:的ObjectId('...'),u'fail”:假,u'docid':1}
您也可以声明自己的模型特定集合在声明风格:
>>>类TestModel(模型):
       集合='test_db.test_collection“
>>> collection.find_one()

这些类有一些在字典中的附加功能,可以使他们更方便地使用。该文件按键都像访问属性:
>>> T = collection.find_one()
>>> t.fail

>>> t.docid
1
这些文件也容易保存到数据库:
>>> t.docid = 17
>>> t.save()
>>> clean.test_db.test_collection.find_one()
{u'_id“:的ObjectId('...'),u'fail”:假,u'docid“:17}
定义模型
以上,收藏属性被分配到我们的富模型。这是一条捷径,虽然,如果数据库和收集分别分配,该模型可以计算出完整的集合名称。如果收集和数据库不存在,micromongo试图基于模型的类和模块名称来弄明白。例如,blog.Post将变得blog.post,或stream.StreamEntry将变得stream.stream_entry。明确优于隐式,并且它鼓励你手动设置集合。
除了包装并从数据库拆包结果,模型也可以定义一个规范的文件,可以定义默认设置并保存模型前进行验证。举一个小博客文章模型:
>>>从micromongo.spec进口*
>>>类岗位(模型):
       集合='test_db.blog_posts“
       规格=字典(
           笔者=字段(必填=真,默认='jmoiron',类型= basestring的)
           标题=字段(必填=假,默认='',类型= basestring的)
           发表=场(必填=真,默认值=假,类型= [真,假]),
           身体=字段(类型= unicode的),
           时间戳=字段()
        )
>>> P = Post.new()
>>> P
<帖子:{'标题':U'','作者':u'jmoiron','出版':假}>
有几件事情是怎么回事。具有默认字段都被初始化到默认是否需要与否。如果必填字段不具有默认情况下,它的初始化为无。
领域可以采取一种说法,它可以是一个可调用的,需要一个值,并返回真或假,一个或多个基本类型,或一个或多个值。如果提供一个或多个类型,isinstance用于测试该值是正确的类型。如果提供一个或多个值,该字段作为枚举类型,检查该值是在其组值。如果没有的形式,则验证总是在一个字段,除非它是必需的,不存在通过。
如果P字段提供一个无效的类型,然后ValueError被挂起:
>>> p.title = 10
>>> p.save()
回溯(最近通话最后一个):
&NBSP; ...
ValueError错误:钥匙不匹配规格:['标题']
>>>德尔p.author
>>> p.save()
回溯(最近通话最后一个):
&NBSP; ...
ValueError错误:缺少字段:['作家'],无效的字段:['标题']
>>> p.title ='我的第一个博文“
>>> p.author ='jmoiron“
>>> p.published =真
>>> p.body = U“这是我的第一个博客帖子..&NBSP;我太兴奋了!”
>>> p.save()
Model.find
为了方便和DRY,Model.find是,将使用micromongo的光标发出反对的权利集合查找类方法。此方法的行为完全一样pymongo的Collection.find。
micromongo的稍微修改Cursor类也使得提供给所有的游标(查找任何你锁链,如果它返回一个指针)一个Django启发ORDER_BY方法。你可以通过一个或多个字段名,一个可选的领先' - ',由升序或降序排序的事情。
这些变化让你使用最pymongo的权力,而无需将其导入,并让你避免你的数据的位置的不必要的重复。
子类化领域
我们鼓励您创建自己的字段做你想做的。 Field子类有一个钩子函数pre_validate这需要一个输入值,并可以将它不过他们想要的。请注意,如果字段是实际存在这只会工作;所以要得到的东西像一个DateTimeField字段的auto_now_add,你会想让它需要的,并有其pre_validate把无成datetime.datetime.now()

要求

  • 在Python中

类似的软件

PySQLite
PySQLite

11 May 15

Sequoia
Sequoia

3 Jun 15

SPARQLWrapper
SPARQLWrapper

20 Feb 15

显影剂的其他软件 Jason Moiron

pdf2zip
pdf2zip

11 May 15

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

意见 micromongo

评论没有发现
添加评论
打开图片!