GraphQL framework for Python
Go to file
Adam Charnock 70cedc046f Adding support for filtering by global ID
This is supported for AutoFields, OneToOneFields, and ForeignKey.
I have also added the GrapheneFilterSet base class. This provides
customsiations needed for Graphene. However, making developers
tie their FilterSets to Graphene would not be ideal as it would
prevent their use elsewhere. I therefore wrap any FilterSets
provided to Graphene with this additional functionality.

See `setup_filterset()` for how this is done. Such FilterSets
are also created by `custom_filterset_factory()` (in times
when a filterset is implicitly required via the `fields`
or `order_by` params passed to `DjangoFilterConnectionField`.
2015-12-03 17:55:41 +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 examples. Fixed #45 2015-11-22 17:29:30 -08:00
graphene Adding support for filtering by global ID 2015-12-03 17:55:41 +00:00
tests Django integration finished 2015-11-11 21:46:26 -08:00
.gitignore Adding PyCharm entry to .gitignore 2015-12-03 10:05:59 +00:00
.travis.yml Use the real branch names. 2015-11-30 00:12:21 -08: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 Adding tests for DjangoFilterConnectionField 2015-12-03 11:09:34 +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