2011-11-14 2 views
0

나는 http://packages.python.org/CouchDB/mapping.html에서 CouchDb 튜토리얼을 따라 가고 있었다. 이것은 프로그램별로 모듈이 작동하지 않기 때문에 구식 인 것 같습니다. 그래서 저는 CouchDB python 스크립트를 작성하여 몇 가지 값만 저장했습니다. 여기에는 제 스크립트가 있습니다. 하지만 CouchDb 데이터베이스를 조회 할 때 이름과 나이를 찾을 수는 있지만 날짜 값은에 저장되지 않습니다. 누군가이 일을하는 법을 가르쳐 줄 수 있습니까? 또한 업데이트 된 python CouchDB 자습서가 있습니까?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

CouchDB를 예제 datetime.now의 디폴트 값을 참조하지만 당신은 datetime.datetime.now()을 사용하고 있습니다. 추가 datetime은 문제가되지 않지만 가독성을 위해 from datetime import datetime을 사용하는 것이 좋습니다.

문제점은 사용자가 함수를 호출하고 그 값을 리턴하는 반면, 예제는 Couchdb가 기본값을 필요로 할 때마다 호출 할 수있는 함수 오브젝트를 전달하는 반면입니다.

두 개의 괄호를 없애고 확인해야합니다.

+0

감사합니다. 어떻게하면 괄호를 제거하더라도 couchdb가 데이터를 표시하지 않습니다. – Rkz

+0

새 레코드를 만들었습니까? 'default'는 새로운 Couchdb 레코드를 생성 할 때만 영향을 미칠 것입니다. –

+0

db.save (person)는 새 레코드를 만들고,이 인수를 전달할 때부터 새 레코드에서 이름과 나이를 봅니다. – Rkz

0

동일한 문제가 발생하여 코드를 보았을 때 2 Document 클래스가 있음을 발견했습니다! 필드 매핑을 사용하려면 대신 couchdb.mapping.Document을 사용하십시오.