如何访问方法库?

时间:2017-05-13 18:57:03

标签: python django

我需要使用库中定义的一些方法。 在我的模块中,我有

/mymodule/lib/mod.py

views.py中的/mymodule/views.py

mod.py我声明:

class ModClient(object):
    """REST client for Mod API"""

    def __init__(self, client_id, secret, environment):
        self.client_id = client_id
        self.secret = secret
        self.environment = environment

    def _base_url(self):
        base_url = ''
        if self.environment == 'sandbox':
            base_url = 'https://sandbox.mod.com'
        elif self.environment == 'development':
            base_url = 'https://development.mod.com'
        elif self.environment == 'production':
            base_url = 'https://production.mod.com'
        return base_url


    def _base_params(self):
        params = {
            'client_id': self.client_id,
            'secret': self.secret
        }
        return params

    def _parse_response(self, response):
        result = response.json()
        if response.status_code != 200:
            raise ModClientException(message='HTTP status {}: {}'.format(response.status_code, result),
                                       http_status=response.status_code,
                                       error_type=result.get('error_type', None),
                                       error_code=result.get('error_code', None))
        return result

    def get_accounts(self, access_token):
        url = '{}/accounts/get'.format(self._base_url())
        params = self._base_params()
        params['access_token'] = access_token
        response = requests.post(url, json=params)
        return self._parse_response(response)

我如何从我的get_accounts访问我的方法view.py,假设两者都在同一个模块中?

1 个答案:

答案 0 :(得分:1)

如果mymodule是一个包本身且其包含的文件夹位于您的环境PYTHONPATH中,请通过以下方式导入该类:

from lib.mod import ModClient

然后,您应该能够在视图中实例化该类并在该实例上调用方法:

mc = ModClient()
accounts = mc.get_accounts(token)

适当的IDE(PyCharm,Eclipse等)将为您进行自动导入。