couchDB-Python 存储日期值
我在看一个关于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在需要默认值的时候可以随时调用。
把那两个括号去掉,你就没问题了。