2013-04-09 15 views
-1

我正在使用Flask和CouchDB。我已將文件文檔映射到文件對象。我應該如何在燒瓶中使用CouchDBs視圖

class File(Document): 
    name = TextField() 
    conten = TextField() 

在我的Flask Blueprint中,我想返回所有文件。我怎麼做。我知道我必須寫下如下圖:

function(doc) { 
    if(doc.type == 'file') { 
     emit(doc_id, doc) 
    } 
} 

但是我要把這段代碼放在哪裏?在我的File對象中?我是否必須將此視圖定義添加到CouchDBManager?或者我應該使用query函數?

回答

0

請勿使用查詢功能,即僅針對臨時視圖,即不適用於生產用途。相反,您應該創建一個類ViewDefinition的對象,並將該對象傳遞給CouchDBManager.add_viewdef方法。這在http://pythonhosted.org/Flask-CouchDB/#writing-views上有更詳細的描述。

或者,您可以直接使用CouchDB http界面上傳設計文檔。由於您只需創建一次視圖,這仍然是可行的。實際上,您可以在http://localhost:5984/_utils上打開日式牀墊,並使用數據庫中的視圖創建設計文檔。有關http://guide.couchdb.org/draft/design.html的更多信息。

+0

如果按照您最初描述的方式完成。但是如何在藍圖中創建ViewDefinition? – OrangeTux 2013-04-10 10:58:30

+0

我不確定是否正確理解您的問題,但要創建一個ViewDefinition對象,您只需將其稱爲:ViewDefinition(「<設計文檔名稱>」,「」,「」)。您在問題中列出的視圖代碼將列出字段類型等於「文件」的所有文檔。 – brdlph 2013-04-10 12:53:33