Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 Graphene设置一个值并获取多个值_Python_Python 2.7_Graphene Python - Fatal编程技术网

使用Python Graphene设置一个值并获取多个值

使用Python Graphene设置一个值并获取多个值,python,python-2.7,graphene-python,Python,Python 2.7,Graphene Python,我想建立一个graphenepythonapi,当提供域名时,它可以让用户查询主机、注册器或两者。此时,我只希望能够在任何其他resolve方法中访问传入的域名 似乎我不能使用self来存储传入的域名,因为其计算结果为None 如对以下代码有任何建议,将不胜感激 import graphene class DomainInput(graphene.InputObjectType): dname = graphene.String() class DomainName(graphe

我想建立一个graphenepythonapi,当提供域名时,它可以让用户查询主机、注册器或两者。此时,我只希望能够在任何其他
resolve
方法中访问传入的域名

似乎我不能使用
self
来存储传入的域名,因为其计算结果为
None

如对以下代码有任何建议,将不胜感激

import graphene


class DomainInput(graphene.InputObjectType):
    dname = graphene.String()


class DomainName(graphene.ObjectType):
    name = graphene.String()


class Host(graphene.ObjectType):
    name = graphene.String()


class Registrar(graphene.ObjectType):
    name = graphene.String()


class Query(graphene.ObjectType):
    domainname = graphene.Field(Host, domain=DomainInput())
    host = graphene.String()
    registrar = graphene.String()

    def __init__(self):
        self.domain_name = ''

    def resolve_domainname(self, args, context, info):
        domain = args.get('domain')
        self.domain_name = domain.get('dname')
        return DomainName(name='For domain name: {}'.format(self.domain_name))

    def resolve_host(self, args, context, info):
        return Host(name='HOST for '.format(self.domain_name))

    def resolve_registrar(self, args, context, info):
        return Registrar(name='REGISTRAR for '.format(self.domain_name))


if __name__ == '__main__':
    di = graphene.Schema(query=Query)
    query = '''
        query something{
            domainname(domain: {dname:"a.com"}) { name }
            host
            registrar
        }
    '''
    result = di.execute(query)

    print result.data
这将返回以下内容:

OrderedDict([('domainQuery', OrderedDict([('domain', u'a.com'), ('host', OrderedDict([('name', 'The Host for a.com')])), ('registrar', OrderedDict([('name', 'The Registrar for a.com')]))]))])
OrderedDict([('domainQuery', OrderedDict([('domain', u'a.com'), ('host', OrderedDict([('name', 'The Host for a.com')])), ('registrar', OrderedDict([('name', 'The Registrar for a.com')]))]))])