Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

35 Zeilen
1.2 KiB

  1. from typing import Any
  2. from starlette.responses import FileResponse as FileResponse # noqa
  3. from starlette.responses import HTMLResponse as HTMLResponse # noqa
  4. from starlette.responses import JSONResponse as JSONResponse # noqa
  5. from starlette.responses import PlainTextResponse as PlainTextResponse # noqa
  6. from starlette.responses import RedirectResponse as RedirectResponse # noqa
  7. from starlette.responses import Response as Response # noqa
  8. from starlette.responses import StreamingResponse as StreamingResponse # noqa
  9. try:
  10. import ujson
  11. except ImportError: # pragma: nocover
  12. ujson = None # type: ignore
  13. try:
  14. import orjson
  15. except ImportError: # pragma: nocover
  16. orjson = None # type: ignore
  17. class UJSONResponse(JSONResponse):
  18. def render(self, content: Any) -> bytes:
  19. assert ujson is not None, "ujson must be installed to use UJSONResponse"
  20. return ujson.dumps(content, ensure_ascii=False).encode("utf-8")
  21. class ORJSONResponse(JSONResponse):
  22. media_type = "application/json"
  23. def render(self, content: Any) -> bytes:
  24. assert orjson is not None, "orjson must be installed to use ORJSONResponse"
  25. return orjson.dumps(content)