mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-09 08:00:39 +03:00
Updated SQLAlchemy example
This commit is contained in:
parent
af4c63512c
commit
8ea2fde16e
|
@ -1,7 +1,7 @@
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
|
||||||
from database import db_session, init_db
|
from database import db_session, init_db
|
||||||
from flask_graphql import GraphQL
|
from flask_graphql import GraphQLView
|
||||||
from schema import schema
|
from schema import schema
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
@ -27,7 +27,8 @@ default_query = '''
|
||||||
}
|
}
|
||||||
}'''.strip()
|
}'''.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
|
@app.teardown_appcontext
|
||||||
|
|
|
@ -1,40 +1,36 @@
|
||||||
import graphene
|
import graphene
|
||||||
from graphene import relay
|
from graphene import relay
|
||||||
from graphene.contrib.sqlalchemy import (SQLAlchemyConnectionField,
|
from graphene_sqlalchemy import (SQLAlchemyConnectionField,
|
||||||
|
SQLAlchemyObjectType,
|
||||||
SQLAlchemyNode)
|
SQLAlchemyNode)
|
||||||
from models import Department as DepartmentModel
|
from models import Department as DepartmentModel
|
||||||
from models import Employee as EmployeeModel
|
from models import Employee as EmployeeModel
|
||||||
from models import Role as RoleModel
|
from models import Role as RoleModel
|
||||||
|
|
||||||
schema = graphene.Schema()
|
|
||||||
|
|
||||||
|
class Department(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||||
@schema.register
|
|
||||||
class Department(SQLAlchemyNode):
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DepartmentModel
|
model = DepartmentModel
|
||||||
|
|
||||||
|
|
||||||
@schema.register
|
class Employee(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||||
class Employee(SQLAlchemyNode):
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = EmployeeModel
|
model = EmployeeModel
|
||||||
|
|
||||||
|
|
||||||
@schema.register
|
class Role(SQLAlchemyNode, SQLAlchemyObjectType):
|
||||||
class Role(SQLAlchemyNode):
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RoleModel
|
model = RoleModel
|
||||||
identifier = 'role_id'
|
|
||||||
|
|
||||||
|
|
||||||
class Query(graphene.ObjectType):
|
class Query(graphene.ObjectType):
|
||||||
node = relay.NodeField(Employee)
|
node = SQLAlchemyNode.Field()
|
||||||
all_employees = SQLAlchemyConnectionField(Employee)
|
all_employees = SQLAlchemyConnectionField(Employee)
|
||||||
all_roles = SQLAlchemyConnectionField(Role)
|
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