2014-04-08 33 views
1

我正在嘗試使用CouchDB進行Flask工作,但仍然無法掩飾原因。TypeError:__call __()只需要1個參數(給出3個)當我實際上給出一個(Python-Flask&CouchDBKit)

我剛開始一個最小的應用程序,以便更容易地找出問題,但仍無濟於事。

這裏是我的應用程序代碼:

import datetime 
from couchdbkit import * 
from flask import Flask 

app = Flask(__name__) 

class Post(Document): 
    title = StringProperty() 
    content = StringProperty() 

server = Server() 
db = server.get_or_create_db('test')  
Post.set_db(db) 

post = **Post.view('post/all')** 

@app.route('/') 
def index(): 
    return post 

if __name__ == '__main__': 
    app.run(debug=True) 

下面是從瓶輸出的調試:

TypeError: __call__() takes exactly 1 argument (3 given) 

這裏回溯:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1478, in full_dispatch_request 
    response = self.make_response(rv) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1577, in make_response 
    rv = self.response_class.force_type(rv, request.environ) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 824, in force_type 
    response = BaseResponse(*_run_wsgi_app(response, environ)) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/test.py", line 854, in run_wsgi_app 
    app_iter = app(environ, start_response) 
TypeError: __call__() takes exactly 1 argument (3 given) 

,如果我跑Post.view ('post/all')之外的路由定義它的工作原理。

我也試着按照官方的教程一行一行,但我假設它已經過時,或者作者假設我有他沒有提到的模塊..?

回答

2

您的視圖不會返回字符串,元組或WSGI響應。

瓶認爲它不是一個字符串或元組,因此它試圖把它當作一個WSGI響應,這意味着它會被調用與environstart_response參數。

從您的index視圖返回實際有效響應,而不是post對象。查看Flask Quickstart的About Responses section。您可能需要使用Flask-CouchDB integration package

相關問題