CouchDB
- Author
- Alan Plum
Zusammenfassung
CouchDB: http://couchdb.apache.org
CouchDB Wiki: http://wiki.apache.org/couchdb
CouchDBKit: http://couchdbkit.org
Flask-CouchDBKit: http://packages.python.org/Flask-CouchDBKit/
Features
- RESTful API (keine proprietären Libraries)
- Revisions-Management
- Dokumente in JSON
View-Server in vielen Sprachen (v.a. JavaScript)
- Keine traditionellen Queries
- Implementation in Erlang
Beispiel-App
1 from flask import Flask
2 from flaskext.couchdbkit import CouchDBKit
3 import couchdbkit
4
5 app = Flask(__name__)
6 app.config['COUCHDB_DATABASE'] = 'demo'
7 db = CouchDBKit(app)
8
9 class Obj(couchdbkit.Document):
10 color = couchdbkit.StringProperty()
11 weight = couchdbkit.IntegerProperty()
12 last_change = couchdbkit.DateTimeProperty()
13
14 @property
15 def last_change_str(self):
16 return self.last_change.strftime('%d.%m.%Y, %H:%M Uhr') if self.last_change else ''
17
18 @app.route('/')
19 def index():
20 return '\n'.join(
21 '''
22 <dl>
23 <dt>Id:</dt><dd>{o._id}</dd>
24 <dt>Color:</dt><dd>{o.color}</dd>
25 <dt>Weight:</dt><dd>{o.weight}</dd>
26 <dt>Last changed:</dt><dd>{o.last_change_str}</dd>
27 </dl>
28 '''.format(o=obj) for obj in Obj.view('demo/all')
29 )
30
31 if __name__ == "__main__":
32 app.run(port=8000, debug=True)