mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-08 23:50:38 +03:00
Updated SQLAlchemy example
This commit is contained in:
parent
af4c63512c
commit
8ea2fde16e
|
@ -1,7 +1,7 @@
|
|||
from flask import Flask
|
||||
|
||||
from database import db_session, init_db
|
||||
from flask_graphql import GraphQL
|
||||
from flask_graphql import GraphQLView
|
||||
from schema import schema
|
||||
|
||||
app = Flask(__name__)
|
||||
|
@ -27,7 +27,8 @@ default_query = '''
|
|||
}
|
||||
}'''.strip()
|
||||
|
||||
GraphQL(app, schema=schema, default_query=default_query)
|
||||
|
||||
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))
|
||||
|
||||
|
||||
@app.teardown_appcontext
|
||||
|
|
|
@ -1,40 +1,36 @@
|
|||
import graphene
|
||||
from graphene import relay
|
||||
from graphene.contrib.sqlalchemy import (SQLAlchemyConnectionField,
|
||||
SQLAlchemyNode)
|
||||
from graphene_sqlalchemy import (SQLAlchemyConnectionField,
|
||||
SQLAlchemyObjectType,
|
||||
SQLAlchemyNode)
|
||||
from models import Department as DepartmentModel
|
||||
from models import Employee as EmployeeModel
|
||||
from models import Role as RoleModel
|
||||
|
||||
schema = graphene.Schema()
|
||||
|
||||
|
||||
@schema.register
|
||||
class Department(SQLAlchemyNode):
|
||||
class Department(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||
|
||||
class Meta:
|
||||
model = DepartmentModel
|
||||
|
||||
|
||||
@schema.register
|
||||
class Employee(SQLAlchemyNode):
|
||||
class Employee(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||
|
||||
class Meta:
|
||||
model = EmployeeModel
|
||||
|
||||
|
||||
@schema.register
|
||||
class Role(SQLAlchemyNode):
|
||||
class Role(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||
|
||||
class Meta:
|
||||
model = RoleModel
|
||||
identifier = 'role_id'
|
||||
|
||||
|
||||
class Query(graphene.ObjectType):
|
||||
node = relay.NodeField(Employee)
|
||||
node = SQLAlchemyNode.Field()
|
||||
all_employees = SQLAlchemyConnectionField(Employee)
|
||||
all_roles = SQLAlchemyConnectionField(Role)
|
||||
role = relay.NodeField(Role)
|
||||
role = graphene.Field(Role)
|
||||
|
||||
schema.query = Query
|
||||
|
||||
schema = graphene.Schema(query=Query, types=[Department, Employee, Role])
|
||||
|
|
Loading…
Reference in New Issue
Block a user