Skip to content

Commit 97e2e24

Browse files
committed
Make django and flask use templates
1 parent 0e507d7 commit 97e2e24

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

src/graphql_server/django/views.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,11 @@ def render_graphql_ide(
245245
self, request: HttpRequest, request_data: GraphQLRequestData
246246
) -> HttpResponse:
247247
try:
248-
content = render_to_string("graphql/graphiql.html", request=request)
248+
content = render_to_string(
249+
"graphql/graphiql.html",
250+
request=request,
251+
context=request_data.to_template_context(),
252+
)
249253
except TemplateDoesNotExist:
250254
content = self.graphql_ide_html
251255

@@ -307,7 +311,11 @@ async def render_graphql_ide(
307311
self, request: HttpRequest, request_data: GraphQLRequestData
308312
) -> HttpResponse:
309313
try:
310-
content = render_to_string("graphql/graphiql.html", request=request)
314+
content = render_to_string(
315+
"graphql/graphiql.html",
316+
request=request,
317+
context=request_data.to_template_context(),
318+
)
311319
except TemplateDoesNotExist:
312320
content = self.graphql_ide_html
313321

src/graphql_server/flask/views.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,14 @@ def dispatch_request(self) -> ResponseReturnValue:
133133
def render_graphql_ide(
134134
self, request: Request, request_data: GraphQLRequestData
135135
) -> Response:
136-
return render_template_string(self.graphql_ide_html) # type: ignore
136+
return render_template_string(
137+
self.graphql_ide_html,
138+
**{
139+
"query": request_data.query,
140+
"variables": request_data.variables,
141+
"operationName": request_data.operation_name,
142+
},
143+
) # type: ignore
137144

138145

139146
class AsyncFlaskHTTPRequestAdapter(AsyncHTTPRequestAdapter):
@@ -198,7 +205,9 @@ async def dispatch_request(self) -> ResponseReturnValue: # type: ignore
198205
async def render_graphql_ide(
199206
self, request: Request, request_data: GraphQLRequestData
200207
) -> Response:
201-
content = render_template_string(self.graphql_ide_html)
208+
content = render_template_string(
209+
self.graphql_ide_html, **request_data.to_template_context()
210+
)
202211
return Response(content, status=200, content_type="text/html")
203212

204213
def is_websocket_request(self, request: Request) -> TypeGuard[Request]:

src/graphql_server/http/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ class GraphQLRequestData:
3737
extensions: Optional[dict[str, Any]]
3838
protocol: Literal["http", "multipart-subscription", "subscription"] = "http"
3939

40+
def to_template_context(self) -> dict[str, Any]:
41+
return {
42+
"query": self.query,
43+
"variables": self.variables,
44+
"operationName": self.operation_name,
45+
}
46+
4047

4148
__all__ = [
4249
"GraphQLHTTPResponse",

0 commit comments

Comments
 (0)