Flask mit CouchDB

Django, Flask, Bottle, WSGI, CGI…
Antworten
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Hallo,
Ich habe das folgende Beispiel hier gefunden https://bitbucket.org/leafstorm/flask-c ... at=default.

Code: Alles auswählen

import datetime
from flask import Flask, render_template, flash, request, redirect, url_for
from flaskext.couchdb import (CouchDBManager, Document, TextField,
                              DateTimeField, ViewField, paginate)


# application setup
app = Flask(__name__)


# config
COUCHDB_SERVER = 'http://localhost:5984/'
COUCHDB_DATABASE = 'example-guestbook'
SECRET_KEY = 'set this to something secret'

app.config.from_object(__name__)


# model
class Signature(Document):
    doc_type = 'signature'

    message = TextField()
    author = TextField()
    time = DateTimeField(default=datetime.datetime.now)

    all = ViewField('guestbook', '''
        function (doc) {
            if (doc.doc_type == 'signature') {
                emit(doc.time, doc);
            };
        }''', descending=True)


manager = CouchDBManager()
manager.add_document(Signature)
manager.setup(app)


# views
@app.route('/')
def display():
    page = paginate(Signature.all(), 5, request.args.get('start'))
    return render_template('display.html', page=page)


@app.route('/', methods=['POST'])
def post():
    message = request.form.get('message')
    author = request.form.get('author')
    if not message or not author:
        flash("You must fill in both a message and an author")
    else:
        signature = Signature(message=message, author=author)
        signature.store()
        flash("Signature stored")
    return redirect(url_for('display'))


if __name__ == '__main__':
    app.config.from_envvar('GUESTBOOK_SETTINGS', silent=True)
    app.run(debug=True)

Leider bekomme ich diese Fehlermeldungen:

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1473, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1666, in preprocess_request
    rv = func()
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask_CouchDB-0.2.1-py2.7.egg/flaskext/couchdb.py", line 154, in request_start
    self.sync(current_app)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/Flask_CouchDB-0.2.1-py2.7.egg/flaskext/couchdb.py", line 131, in sync
    if db_name not in server:
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/CouchDB-0.9-py2.7.egg/couchdb/client.py", line 94, in __contains__
    self.resource.head(name)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/CouchDB-0.9-py2.7.egg/couchdb/http.py", line 510, in head
    return self._request('HEAD', path, headers=headers, **params)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/CouchDB-0.9-py2.7.egg/couchdb/http.py", line 542, in _request
    credentials=self.credentials)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/CouchDB-0.9-py2.7.egg/couchdb/http.py", line 280, in request
    conn = self.connection_pool.get(url)
  File "/home/mit/apps/pymodules/lib/python2.7/site-packages/CouchDB-0.9-py2.7.egg/couchdb/http.py", line 470, in get
    conn.connect()
  File "/usr/lib64/python2.7/httplib.py", line 772, in connect
    self.timeout, self.source_address)
  File "/usr/lib64/python2.7/socket.py", line 571, in create_connection
    raise err
error: [Errno 111] Connection refused
127.0.0.1 - - [18/Apr/2014 08:19:49] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2014 08:19:49] "GET /?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2014 08:19:49] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2014 08:19:50] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2014 08:19:50] "GET /?__debugger__=yes&cmd=resource&f=source.png HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2014 08:19:50] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

Wie koennte man das Problem beheben?

Vielen Dank im Voraus
BlackJack

@mit: Läuft denn der CouchDB-Server auf localhost und dem angegebenen Port?
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Danke es funktioniert!
Antworten