Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 理解类继承以干涸一些代码_Python_Cloudant - Fatal编程技术网

Python 理解类继承以干涸一些代码

Python 理解类继承以干涸一些代码,python,cloudant,Python,Cloudant,我正在使用cloudantpython库连接到我的cloudant帐户 以下是我目前掌握的代码: import cloudant class WorkflowsCloudant(cloudant.Account): def __init__(self): super(WorkflowsCloudant, self).__init__(settings.COUCH_DB_ACCOUNT_NAME,

我正在使用
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)
导入cloudant
类工作流Loudant(cloudant.Account):
定义初始化(自):
超级(工作流程缓存,自我)。\uuuuu初始化\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
auth=(settings.coach\u公钥,
设置。沙发(私钥)
@blueprint.route(“/”)
def获取单个工作流(帐户id、工作流id):
account=工作流Loudant()
db=帐户.数据库(settings.coach\u db\u NAME)
文档=数据库文档(工作流\u id)
resp=doc.get().json()
如果响应['account_id']!=帐户id:
返回错误\u helpers。禁止('无效帐户')
返回jsonify(resp)

Flask
控制器内部将包含
CRUD
操作,但在当前实现中,我必须在对要查看/操作的文档执行操作之前,在每个方法中设置
帐户
db
变量。我如何清理(或干燥)我的代码,以便只需调用我的主
工作流Loudant
类?

我不知道
cloudant
,因此我可能完全偏离了基准,但我相信这回答了您的问题:

get\u single\u工作流
中删除
account
db
doc

将以下行添加到
\uuuuu init\uuuu

db = account.database(settings.COUCH_DB_NAME)
self.doc = db.document(workflow_id)
get_single_工作流
中的
resp
行更改为:

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

你能把这当作一个问题说出来吗?@jrennie我已经把它清理干净了。你能在
WorkflowScoldant.中创建
帐户
db
doc
,并将
doc
作为一个公共字段吗?@jrennie你能举个例子吗?