当前位置: 首页>>代码示例>>Python>>正文


Python applications.Starlette方法代码示例

本文整理汇总了Python中starlette.applications.Starlette方法的典型用法代码示例。如果您正苦于以下问题:Python applications.Starlette方法的具体用法?Python applications.Starlette怎么用?Python applications.Starlette使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在starlette.applications的用法示例。


在下文中一共展示了applications.Starlette方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __call__

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def __call__(self):
        """
        Implements a custom Callable method for WebGear application.
        """
        # validate routing tables
        assert not (self.routes is None), "Routing tables are NoneType!"
        if not isinstance(self.routes, list) or not all(
            x in self.routes for x in self.__rt_org_copy
        ):
            raise RuntimeError("Routing tables are not valid!")
        # initiate stream
        if self.__logging:
            logger.debug("Initiating Video Streaming.")
        self.stream.start()
        # return Starlette application
        if self.__logging:
            logger.debug("Running Starlette application.")
        return Starlette(
            debug=(True if self.__logging else False),
            routes=self.routes,
            exception_handlers=self.__exception_handlers,
            on_shutdown=[self.shutdown],
        ) 
开发者ID:abhiTronix,项目名称:vidgear,代码行数:25,代码来源:webgear.py

示例2: app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def app(self):
        app_ = Starlette()
        app_.add_middleware(PrometheusMiddleware)
        app_.add_route("/metrics/", metrics)

        @app_.route("/foo/")
        def foo(request):
            return PlainTextResponse("Foo")

        @app_.route("/bar/")
        def bar(request):
            raise ValueError("bar")

        @app_.route("/foo/{bar}/")
        def foobar(request):
            return PlainTextResponse(f"Foo: {request.path_params['bar']}")

        return app_ 
开发者ID:perdy,项目名称:starlette-prometheus,代码行数:20,代码来源:test_end_to_end.py

示例3: app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def app():
    app = Starlette()

    @app.route("/sync-message")
    def hi(request):
        capture_message("hi", level="error")
        return PlainTextResponse("ok")

    @app.route("/async-message")
    async def hi2(request):
        capture_message("hi", level="error")
        return PlainTextResponse("ok")

    app.add_middleware(SentryAsgiMiddleware)

    return app 
开发者ID:getsentry,项目名称:sentry-python,代码行数:18,代码来源:test_asgi.py

示例4: app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def app(elasticapm_client):
    app = Starlette()

    @app.route("/", methods=["GET", "POST"])
    async def hi(request):
        with async_capture_span("test"):
            pass
        return PlainTextResponse("ok")

    @app.route("/raise-exception", methods=["GET", "POST"])
    async def raise_exception(request):
        raise ValueError()

    app.add_middleware(ElasticAPM, client=elasticapm_client)

    return app 
开发者ID:elastic,项目名称:apm-agent-python,代码行数:18,代码来源:starlette_tests.py

示例5: test_starlette_mount

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def test_starlette_mount(engine: Engine, mount_path: str, path: str) -> None:
    kwargs = omit_none({"engine": engine, "path": path})

    graphql = TartifletteApp(**kwargs)
    routes = [Mount(mount_path, graphql)]
    app = Starlette(routes=routes, on_startup=[graphql.startup])

    query = "{ hello }"
    full_path = mount_path.rstrip("/") + ("/" if path is None else path)
    assert "//" not in full_path

    url = f"{full_path}?query={query}"
    async with get_client(app) as client:
        response = await client.get(url)
        graphiql_response = await client.get(url, headers={"accept": "text/html"})

    assert response.status_code == 200
    assert response.json() == {"data": {"hello": "Hello stranger"}}

    assert graphiql_response.status_code == 200
    assert full_path in graphiql_response.text 
开发者ID:tartiflette,项目名称:tartiflette-asgi,代码行数:23,代码来源:test_mount.py

示例6: test_graphiql_endpoint_paths_when_mounted

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def test_graphiql_endpoint_paths_when_mounted(
    engine: Engine, mount_path: str
) -> None:
    graphql = TartifletteApp(engine=engine, graphiql=True, subscriptions=True)
    app = Starlette(routes=[Mount(mount_path, graphql)], on_startup=[graphql.startup])

    async with get_client(app) as client:
        response = await client.get(mount_path, headers={"accept": "text/html"})

    assert response.status_code == 200

    graphql_endpoint = mount_path + "/"
    assert f"var graphQLEndpoint = `{graphql_endpoint}`;" in response.text

    subscriptions_endpoint = mount_path + "/subscriptions"
    assert f"var subscriptionsEndpoint = `{subscriptions_endpoint}`;" in response.text 
开发者ID:tartiflette,项目名称:tartiflette-asgi,代码行数:18,代码来源:test_mount.py

示例7: test_tartiflette_app_as_sub_starlette_app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def test_tartiflette_app_as_sub_starlette_app(engine: Engine) -> None:
    async def home(_request: Request) -> PlainTextResponse:
        return PlainTextResponse("Hello, world!")

    graphql = TartifletteApp(engine=engine)
    routes = [
        Route("/", endpoint=home),
        Mount("/graphql", app=graphql, name="tartiflette-asgi"),
    ]
    app = Starlette(routes=routes, on_startup=[graphql.startup])

    async with get_client(app) as client:
        response = await client.get("/")
        assert response.status_code == 200
        assert response.text == "Hello, world!"
        response = await client.get("/graphql?query={ hello }")
        assert response.status_code == 200
        assert response.json() == {"data": {"hello": "Hello stranger"}} 
开发者ID:tartiflette,项目名称:tartiflette-asgi,代码行数:20,代码来源:test_mount.py

示例8: backend_app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def backend_app():
    return [
        ('flask', Flask(__name__)),
        ('falcon', falcon.API()),
        ('starlette', Starlette()),
    ] 
开发者ID:0b01001001,项目名称:spectree,代码行数:8,代码来源:test_spec.py

示例9: get_loader_for_app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def get_loader_for_app(app: Any) -> Callable:
    if isinstance(app, Starlette):
        return from_asgi
    if app.__class__.__module__.startswith("aiohttp."):
        return from_aiohttp
    return from_wsgi 
开发者ID:kiwicom,项目名称:schemathesis,代码行数:8,代码来源:loaders.py

示例10: instrument_app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def instrument_app(app: applications.Starlette):
        """Instrument a previously instrumented Starlette application.
        """
        if not getattr(app, "is_instrumented_by_opentelemetry", False):
            app.add_middleware(
                OpenTelemetryMiddleware,
                span_details_callback=_get_route_details,
            )
            app.is_instrumented_by_opentelemetry = True 
开发者ID:open-telemetry,项目名称:opentelemetry-python,代码行数:11,代码来源:__init__.py

示例11: _instrument

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def _instrument(self, **kwargs):
        self._original_starlette = applications.Starlette
        applications.Starlette = _InstrumentedStarlette 
开发者ID:open-telemetry,项目名称:opentelemetry-python,代码行数:5,代码来源:__init__.py

示例12: _uninstrument

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def _uninstrument(self, **kwargs):
        applications.Starlette = self._original_starlette 
开发者ID:open-telemetry,项目名称:opentelemetry-python,代码行数:4,代码来源:__init__.py

示例13: _create_starlette_app

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def _create_starlette_app():
        def home(_):
            return PlainTextResponse("hi")

        app = applications.Starlette(
            routes=[Route("/foobar", home), Route("/user/{username}", home)]
        )
        return app 
开发者ID:open-telemetry,项目名称:opentelemetry-python,代码行数:10,代码来源:test_starlette_instrumentation.py

示例14: test_instrumentation

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def test_instrumentation(self):
        """Verify that instrumentation methods are instrumenting and
        removing as expected.
        """
        instrumentor = otel_starlette.StarletteInstrumentor()
        original = applications.Starlette
        instrumentor.instrument()
        try:
            instrumented = applications.Starlette
            self.assertIsNot(original, instrumented)
        finally:
            instrumentor.uninstrument()

        should_be_original = applications.Starlette
        self.assertIs(original, should_be_original) 
开发者ID:open-telemetry,项目名称:opentelemetry-python,代码行数:17,代码来源:test_starlette_instrumentation.py

示例15: test_access_request_from_graphql_context

# 需要导入模块: from starlette import applications [as 别名]
# 或者: from starlette.applications import Starlette [as 别名]
def test_access_request_from_graphql_context(
    engine: Engine, authorization: str, expected_user: str,
) -> None:
    class FakeAuthMiddleware(BaseHTTPMiddleware):
        async def dispatch(
            self, request: Request, call_next: typing.Callable
        ) -> Response:
            request.state.user = (
                "Jane" if request.headers["authorization"] == "Bearer 123" else None
            )
            return await call_next(request)

    graphql = TartifletteApp(engine=engine)
    app = Starlette(
        routes=[Mount("/", graphql)],
        middleware=[Middleware(FakeAuthMiddleware)],
        on_startup=[graphql.startup],
    )

    async with get_client(app) as client:
        # See `tests/resolvers.py` for the `whoami` resolver.
        response = await client.post(
            "/", json={"query": "{ whoami }"}, headers={"Authorization": authorization},
        )

    assert response.status_code == 200
    assert response.json() == {"data": {"whoami": expected_user}} 
开发者ID:tartiflette,项目名称:tartiflette-asgi,代码行数:29,代码来源:test_context.py


注:本文中的starlette.applications.Starlette方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。