GraphQL framework for Python
Go to file
2015-10-27 00:17:27 -07:00
graphene Improved types as containers 2015-10-27 00:17:27 -07:00
tests Improved types as containers 2015-10-27 00:17:27 -07:00
.gitignore First working version of Graphene 😃 2015-09-24 02:11:50 -07:00
.travis.yml Fixed tests 2015-10-08 09:23:55 -07:00
LICENSE First working version of Graphene 😃 2015-09-24 02:11:50 -07:00
README.md Improved types as containers 2015-10-27 00:17:27 -07:00
README.rst Improved README 2015-10-06 23:13:10 -07:00
setup.cfg First working version of Graphene 😃 2015-09-24 02:11:50 -07:00
setup.py Updated version 2015-10-23 01:52:31 -07:00
tox.ini Fixed Python3 errors 2015-10-26 01:59:38 -07:00

Graphene Logo Graphene Build Status PyPI version Coverage Status

Graphene is a Python library for building GraphQL schemas/types fast and easily.

  • Easy to use: It maps the models/fields to internal GraphQL objects without effort.
  • Relay: Graphene has builtin support for Relay
  • Django: Automatic Django model mapping to Graphene Types. See an example Django implementation

Installation

For instaling graphene, just run this command in your shell

pip install graphene

Examples

Here is one example for get you started:

class Query(graphene.ObjectType):
    hello = graphene.StringField(description='A typical hello world')
    ping = graphene.StringField(description='Ping someone',
                                to=graphene.Argument(graphene.String))

    def resolve_hello(self, args, info):
        return 'World'

    def resolve_ping(self, args, info):
        return 'Pinging {}'.format(args.get('to'))

schema = graphene.Schema(query=Query)

Then Querying graphene.Schema is as simple as:

query = '''
    query SayHello {
      hello
      ping(to:'peter')
    }
'''
result = schema.execute(query)

If you want to learn even more, you can also check the following examples:

Contributing

After cloning this repo, ensure dependencies are installed by running:

python setup.py install

After developing, the full test suite can be evaluated by running:

python setup.py test # Use --pytest-args="-v -s" for verbose mode