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中

類似的軟件

migranto
migranto

20 Feb 15

movingaverage
movingaverage

11 May 15

datanommer
datanommer

20 Feb 15

SQLScreens
SQLScreens

20 Feb 15

顯影劑的其他軟件 Jason Moiron

speedparser
speedparser

14 Apr 15

redtape
redtape

14 Apr 15

pdf2zip
pdf2zip

11 May 15

意見 micromongo

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