我知道這個問題已經被一個或兩個人問過了,但它與我所想的不同。請多多包涵。如何開始在另一個包裝器上編寫python包裝?
我想寫一個包裝現有的couchdb-python包裝。原因是,如果我們決定在將來切換到另一個NoSQL數據庫,例如MongoDB,我只需要更改我的代碼庫的一部分。
問題1:鑑於上述情況,這是建議的正確的行動方案嗎?
訪問數據庫需要使用couchdb-python包裝器訪問couchdb的問題,有時(並非所有時間),用戶名/密碼都是必需的。這就是它看起來像在代碼:
server = Server() <---- When no username/password is required
server = Server('http://abc:[email protected]:5984') <---- When username/password is required
我將如何界定inital 初始化功能,以應付這兩種方案。我現在有這樣的想法:
from couchdb import Server
class Couch(object):
""" CouchDB Wrapper """
COUCHDB_URI = {username_not_provided: 'http://localhost:5984',
username_provided: 'http://%s:%[email protected]: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)
我覺得代碼看起來很醜,有人能指出我對上述的正確方向嗎?
謝謝大家!我非常感謝幫助。
感謝您的輸入,但我確實在尋找答案和JDI答案的組合。我想知道是否有可能將觀點授予你們兩個人。 – Mark 2012-01-09 02:23:09