/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
docs/platform/sdks/server/python.mdx
179 строк
4 KB
mintlify[bot]
docs(docs): Apply SEO and metadata best practices (#11903)
13 июл 2026, 11:22
Не верифицирован
13 июл 2026, 11:22
01f36ae
Код
Авторство
О чём код?
--- title: 'Python' description: "Connect a Python application to Novu with the official server SDK to trigger workflows, manage subscribers, and send notifications from Python." --- Novu's Python SDK provides simple, yet comprehensive notification management, and delivery capabilities through multiple channels that you can implement using code that integrates seamlessly with your Python application. [Explore the source code on GitHub](https://github.com/novuhq/novu-py) ## Installation <Tabs> <Tab title="PIP"> PIP is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line. ```bash pip install novu-py ``` </Tab> <Tab title="Poetry"> Poetry is a modern tool that simplifies dependency management and package publishing by using a single pyproject.toml file to handle project metadata and dependencies. ```bash poetry add novu-py ``` </Tab> <Tab title="Shell and script usage with uv"> You can use this SDK in a Python shell with uv and the uvx command that comes with it like so: ```bash uvx --from novu-py python ``` It's also possible to write a standalone Python script without needing to set up a whole project like so: ```python #!/usr/bin/env -S uv run --script # /// script # requires-python = ">=3.9" # dependencies = [ # "novu-py", # ] # /// from novu_py import Novu sdk = Novu( # SDK arguments ) # Rest of script here... ``` Once that is saved to a file, you can run it with uv run `script.py` where `script.py` can be replaced with the actual file name. </Tab> </Tabs> ## Usage <Tabs> <Tab title="US Region"> <Tabs> <Tab title="Synchronous"> ```python import novu_py from novu_py import Novu import os with Novu( secret_key=os.getenv("NOVU_SECRET_KEY", ""), ) as novu: res = novu.trigger(trigger_event_request_dto=novu_py.TriggerEventRequestDto( workflow_id="workflow_identifier", to={ "subscriber_id": "subscriber_unique_identifier", "first_name": "Albert", "last_name": "Einstein", "email": "albert@einstein.com", }, payload={ "comment_id": "string", "post": { "text": "string", }, }, overrides={ "email": { "bcc": "no-reply@novu.co" } }, )) # Handle response print(res) ```` </Tab> <Tab title="Asynchronous"> ```python import asyncio import novu_py from novu_py import Novu import os async def main(): async with Novu( secret_key=os.getenv("NOVU_SECRET_KEY", ""), ) as novu: res = await novu.trigger_async(trigger_event_request_dto=novu_py.TriggerEventRequestDto( workflow_id="workflow_identifier", to={ "subscriber_id": "subscriber_unique_identifier", "first_name": "Albert", "last_name": "Einstein", "email": "albert@einstein.com", }, payload={ "comment_id": "string", "post": { "text": "string", }, }, overrides={ "email": { "bcc": "no-reply@novu.co", } }, )) # Handle response print(res) asyncio.run(main()) ```` </Tab> </Tabs> </Tab> <Tab title="EU Region"> ```python import novu_py from novu_py import Novu import os with Novu( server_url="https://eu.api.novu.co", secret_key=os.getenv("NOVU_SECRET_KEY", ""), ) as novu: res = novu.trigger(trigger_event_request_dto=novu_py.TriggerEventRequestDto( workflow_id="workflow_identifier", to={ "subscriber_id": "subscriber_unique_identifier", }, payload={ "comment_id": "string", "post": { "text": "string", }, }, overrides={ "email": { "bcc": "no-reply@novu.co" } }, )) # Handle response print(res) ``` </Tab> </Tabs> ```