Я знаю, что этот вопрос задавали один или два человека, но это как-то отличается от того, что я имею в виду.Пожалуйста, потерпите меня.
Я пытаюсь написать оболочку для существующей оболочки couchdb-python.Причина этого в том, что в случае, если в будущем мы решим переключиться на другую базу данных NoSQL, например MongoDB, мне придется изменить только одну часть моей кодовой базы.
Вопрос 1. Является ли предложенный правильный курс действий с учетом приведенного выше сценария?
Проблема с доступом к couchdb с использованием оболочки couchdb-python, иногда (не всегда), имени пользователя/ пароль необходим для доступа к базе данных.Вот как это выглядит в коде:
server = Server() <---- When no username/password is required
server = Server('http://abc:123@localhost:5984') <---- When username/password is required
Как бы я определил начальную init функцию для обслуживания обоих сценариев.У меня сейчас что-то вроде этого:
from couchdb import Server
class Couch(object):
""" CouchDB Wrapper """
COUCHDB_URI = {username_not_provided: 'http://localhost:5984',
username_provided: 'http://%s:%s@localhost:5984'}
def __init__(self, username=None, password=None):
if username and password:
self.url = COUCHDB_URI['username_provided'] % (username, password)
else:
self.url = COUCHDB_URI['username_not_provided']
self.server = Server(self.url)
Я думаю, что код выглядит некрасиво, кто-то может указать мне правильное направление для вышеизложенного?
Спасибо всем!Я действительно ценю помощь.