GraphQL framework for Python
Go to file
Adam Charnock eb665d569d Adding .editorconfig to help enforce whitespace rules
(and to stop me keep adding too many blank lines at the
end of files)
2015-12-05 09:02:15 +00:00
bin Fixed lint errors 2015-12-02 23:46:49 -08:00
docs Fixed typo. Thanks @ pauliwang! 2015-11-30 22:41:44 -08:00
examples Improved django example 2015-12-03 18:34:38 -08:00
graphene Fixes to how singledispatch is imported 2015-12-05 09:01:11 +00:00
tests Improved tests 2015-12-03 21:49:10 -08:00
.editorconfig Adding .editorconfig to help enforce whitespace rules 2015-12-05 09:02:15 +00:00
.gitignore Adding PyCharm entry to .gitignore 2015-12-03 10:05:59 +00:00
.travis.yml No longer testing on python 3.3 as no supported django versions support it 2015-12-04 17:08:58 +00:00
LICENSE First working version of Graphene 😃 2015-09-24 02:11:50 -07:00
README.md Updated READMEs 2015-11-30 00:25:18 -08:00
README.rst Updated READMEs 2015-11-30 00:25:18 -08:00
setup.cfg Exclude flake8 syntax in docs. Added tea_store example 2015-11-29 23:09:46 -08:00
setup.py Updating django version requirement to Django 1.8 2015-12-04 16:52:43 +00:00
tox.ini Added subscription support. Fixed #35 2015-11-19 08:37:15 -08: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: Graphene helps you use GraphQL in Python without effort.
  • Relay: Graphene has builtin support for Relay
  • Django: Automatic Django model mapping to Graphene Types. Check a fully working Django implementation

What is supported in this Python version? Everything: Interfaces, ObjectTypes, Scalars, Unions and Relay (Nodes, Connections), in addition to queries, mutations and subscriptions.

NEW!: Try graphene online

Installation

For instaling graphene, just run this command in your shell

pip install graphene
# Or in case of need Django model support
pip install graphene[django]

Examples

Here is one example for get you started:

class Query(graphene.ObjectType):
    hello = graphene.String(description='A typical hello world')
    ping = graphene.String(description='Ping someone',
                           to=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