micromongo

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

Rating: 5.0/5 (Total Votes: 1)

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中

类似的软件

JSqsh
JSqsh

12 May 15

TPDA
TPDA

20 Feb 15

显影剂的其他软件 Jason Moiron

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

pdf2zip
pdf2zip

11 May 15

意见 micromongo

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