示例#1
0
 def __init__(self, **kwargs):
     config = {}
     if hasattr(settings, "COUCHDB_STORAGE_OPTIONS"):
         config.update(settings.COUCHDB_STORAGE_OPTIONS)
     config.update(kwargs)
     self.base_url = config.get('server', DEFAULT_SERVER)
     self.db = setup_couchdb(self.base_url, config.get('database'))
示例#2
0
 def save(self):
     """
     Save document to CouchDB.
     
     If the document exists already, get previous revision and update document
     """
     
     if not (hasattr(self, 'server') or hasattr(self, 'database')):
         raise RuntimeError("object has not been told where to save!")
     
     couchdb =  setup_couchdb(self.server, self.database)
     if self.id in couchdb:
         doc = couchdb[self.id]
         self.update(doc)
     couchdb[self.id] = self
示例#3
0
def load_template_source(template_name, template_dirs=None):
    
    if not hasattr(settings, 'TEMPLATE_COUCHDB_SERVER'):
        error_msg = "CouchDB Template Loader not configured"
        raise TemplateDoesNotExist, error_msg
    
    server = settings.TEMPLATE_COUCHDB_SERVER
    databasename = getattr(settings, 'TEMPLATE_COUCHDB_DATABASE', 'templates')
    database = setup_couchdb(server, databasename)
    
    if template_name in database:
        doc = database[template_name]
        try:
            template = doc['source']
            return template, urljoin(server, databasename, template_name)
        except KeyError:
            error_msg = "Document does not contain template code"
    else:
        error_msg = "No template '%s' found" % template_name
    raise TemplateDoesNotExist, error_msg
示例#4
0
文件: views.py 项目: cklein/temple
def couch():
    """Helper function"""
    return setup_couchdb(settings.TEMPLATE_COUCHDB_SERVER,
                         getattr(settings, 'TEMPLATE_COUCHDB_DATABASE', 'templates'))
示例#5
0
 def _connection(self, server=None, database=None):
     """Cache connection to CouchDB"""
     if self._couchcon is None:
         self._couchcon = setup_couchdb(server, database)
     return self._couchcon