2011-11-14 22 views
0

我從下面的http://packages.python.org/CouchDB/mapping.html CouchDB的教程。這似乎已經過時了,因爲這些模塊根據程序不工作。所以我只寫了CouchDB python腳本來存儲一些值,這裏是我的腳本。但是,當我查找CouchDB的數據庫,我能找到的姓名和年齡,但日期值不存儲。有人能告訴我如何去做這件事嗎?還有更新的python CouchDB教程嗎?的CouchDB的Python存儲日期值

from couchdb import Server, Document 
from couchdb.mapping import TextField, IntegerField, DateTimeField 
import datetime 

class Person(Document): 
    name = TextField() 
    age = IntegerField() 
    added = DateTimeField(default=datetime.datetime.now()) 

if __name__ == '__main__': 
    server = Server('http://localhost:5984') 
    try: 
     db = server.create('person') 
    except Exception: 
     db = server['person'] 

    person = Person(name='John Doe', age=42) 
    db.save(person) 

回答

0

CouchDB的例子是指datetime.now默認值,但使用的是datetime.datetime.now()。額外的datetime不是問題,但您可能需要考慮使用from datetime import datetime以提高可讀性。

的問題是,你調用一個函數,返回它的價值,而示例將一個函數對象,CouchDB的可以調用任何時候,它需要一個默認值。

擺脫兩個括號,你應該確定。

+0

謝謝,這是有道理的。即使刪除了括號,couchdb也不顯示數據。 – Rkz

+0

您是否創建新記錄?當您創建新的Couchdb記錄時,'default'只會起作用。 –

+0

db.save(person)創建一條新記錄,我在新記錄中看到名稱和年齡,因爲我傳遞了這些參數。 – Rkz

0

我遇到了同樣的問題,一眼代碼後,我發現有2個Document類!如果您要使用現場映射,請改爲使用couchdb.mapping.Document