我正在关注http://packages.python.org/CouchDB/mapping.html的CouchDb教程。这似乎已经过时了,因为模块根据程序不起作用。所以我只是写了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)
答案 0 :(得分:0)
Couchdb示例引用的默认值为datetime.now
,但您使用的是datetime.datetime.now()
。额外的datetime
不是问题,但您可能需要考虑使用from datetime import datetime
来提高可读性。
问题是你正在调用一个函数并返回它的值,而这个例子传递了一个Couchdb可以在需要默认值时调用的函数对象。
摆脱两个括号,你应该没事。
答案 1 :(得分:0)
我遇到了同样的问题,在看了一下代码之后,我注意到有2 Document
个类!如果您要使用字段映射,请改用couchdb.mapping.Document
。