def __init__(self, app): manager = CouchDBManager() # ...add document types and view definitions... manager.setup(app) server = Server() self.db = server['active_server_cp']
@property def imgsrc(self): return uploaded_photos.url(self.filename) all = ViewField('photolog', '''\ function (doc) { if (doc.doc_type == 'post') emit(doc.published, doc); }''', descending=True) manager.add_document(Post) manager.setup(app) # utils def to_index(): return redirect(url_for('index')) @app.before_request def login_handle(): g.logged_in = bool(session.get('logged_in')) # views
from flask.ext.couchdb import CouchDBManager, Document, TextField, IntegerField, DateTimeField, ViewField, Row, ViewDefinition from flask import g from werkzeug import LocalProxy couch = LocalProxy(lambda: g.couch) import datetime import os from app import app # omg cyclical imports!! # Setup database here, so we have access to the manager object app.config['COUCHDB_DATABASE'] = "bluepad" app.config['COUCHDB_SERVER'] = os.getenv('CLOUDANT_URL', "http://localhost:5984/") couch_manager = CouchDBManager() couch_manager.setup(app) # used for password encryption from flaskext.bcrypt import Bcrypt bcrypt = Bcrypt(app) # User, but we'll be polite and call them writers :) class Writer(Document): doc_type = "writer" name = TextField() # username/pen-name; not full name email = TextField() # optional password = TextField() @classmethod def new(cls, name=None): if name is None: name = haiku() # create a writer object and return it!
def fetch_project_db(username, project): cur_project = couchdb_views.project_docs(g.couch)[username, project] if len(cur_project.rows) != 1: return None else: return cur_project.rows[0] def fetch_block_db(block_uuid): cur_block = couchdb_views.project_content_docs(g.couch)[block_uuid] # cur_block.id if len(cur_block.rows) != 1: return None else: return cur_block.rows[0] if __name__ == '__main__': app.config.update( DEBUG = True, COUCHDB_SERVER = 'http://localhost:5984/', COUCHDB_DATABASE = 'nerf-db' ) couch.setup(app) couch.add_viewdef((couchdb_views.templates_docs, couchdb_views.users_docs, couchdb_views.projects_docs, couchdb_views.project_docs, couchdb_views.project_content_docs)) loginManager.login_view = 'login' loginManager.setup_app(app) app.run(host='0.0.0.0')