了解类继承以干掉一些代码

时间:2014-06-10 02:56:20

标签: python cloudant

我正在使用cloudant python库连接到我的cloudant帐户。

这是我到目前为止的代码:

import cloudant


class WorkflowsCloudant(cloudant.Account):
    def __init__(self):
        super(WorkflowsCloudant, self).__init__(settings.COUCH_DB_ACCOUNT_NAME,
                                                auth=(settings.COUCH_PUBLIC_KEY,
                                                      settings.COUCH_PRIVATE_KEY))

    @blueprint.route('/<workflow_id>')
    def get_single_workflow(account_id, workflow_id):
        account = WorkflowsCloudant()
        db = account.database(settings.COUCH_DB_NAME)
        doc = db.document(workflow_id)
        resp = doc.get().json()

        if resp['account_id'] != account_id:
            return error_helpers.forbidden('Invalid Account')

        return jsonify(resp)

Flask控制器内部会有CRUD个操作,但在当前实现中,我必须在每个方法中设置accountdb变量对我想要查看/操作的文档执行操作。如何清理(或干掉)我的代码,以便我只需要拨打我的主WorkflowsCloudant课程?

1 个答案:

答案 0 :(得分:1)

我不知道cloudant,所以我可能完全偏离基础,但我相信这会回答你的问题:

account删除dbdocget_single_workflow行。

将以下行添加到__init__

db = account.database(settings.COUCH_DB_NAME)
self.doc = db.document(workflow_id)

resp中的get_single_workflow行更改为:

resp = WorkflowsCloudant().doc.get().json()