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中

類似的軟件

Preppi
Preppi

3 Jun 15

nous.migration
nous.migration

14 Apr 15

JasperETL
JasperETL

3 Jun 15

顯影劑的其他軟件 Jason Moiron

pdf2zip
pdf2zip

11 May 15

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

意見 micromongo

評論沒有發現
添加評論
打開圖片!