mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-11 12:16:58 +03:00
GraphQL framework for Python
70cedc046f
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`. |
||
---|---|---|
bin | ||
docs | ||
examples | ||
graphene | ||
tests | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
README.rst | ||
setup.cfg | ||
setup.py | ||
tox.ini |
Graphene
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:
- Basic Schema: Starwars example
- Relay Schema: Starwars Relay example
- Django model mapping: Starwars Django example
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