couchDB-Python 存储日期值

0 投票
2 回答
854 浏览
提问于 2025-04-17 06:15

我在看一个关于CouchDb的教程,地址是http://packages.python.org/CouchDB/mapping.html。这个教程好像有点过时了,因为里面的模块在我的程序中无法正常工作。所以我重新写了一个CouchDB的Python脚本来存储一些值,下面是我的脚本。但是当我查看CouchDb数据库时,我能找到名字和年龄,但日期的值没有存储。有人能告诉我该怎么做吗?还有没有更新的Python CouchDB教程?

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)

2 个回答

0

我也遇到过同样的问题,稍微看了一下代码,发现有两个 Document 类!如果你打算使用字段映射的话,记得用 couchdb.mapping.Document 这个。

0

这个Couchdb的例子提到一个默认值是 datetime.now,但是你用的是 datetime.datetime.now()。多出来的那个 datetime 其实没什么问题,不过你可以考虑用 from datetime import datetime 这样写,这样看起来更清晰。

问题在于,你是调用了一个函数并返回它的值,而例子中是传递了一个函数对象,这样Couchdb在需要默认值的时候可以随时调用。

把那两个括号去掉,你就没问题了。

撰写回答