← Cloudflare Workers / workers / languages / python
Základy
Obslužná rutina fetch
Jak je uvedeno v úvod do Python Workers, Python Worker může mít pouhé čtyři řádky kódu:
from workers import WorkerEntrypoint, Response
class Default(WorkerEntrypoint):
async def fetch(self, request):
return Response("Hello World!")Stejně jako u ostatních Workerů je hlavním vstupním bodem Python workeru fetch handler který zpracovává příchozí požadavky
zasílané Workeru.
V Python Workeru se tento handler umisťuje do Default třída, která rozšiřuje WorkerEntrypoint třída (kterou lze importovat z workers SDK modulu).
Request Rozhraní
request parametru předaného do fetch handler je objekt JavaScript Request, zpřístupněný přes foreign function interface (FFI),
což vám umožní přistupovat k němu přímo z vašeho kódu v Pythonu.
Zkusme upravit worker tak, aby přijímal požadavky POST. Víme z
dokumentace k Request kterou můžeme volat
await request.json() v rámci async funkci pro analýzu těla požadavku jako
JSON.
V Python Workeru byste napsali:
from workers import WorkerEntrypoint, Response
from hello import hello
class Default(WorkerEntrypoint):
async def fetch(self, request):
body = await request.json()
name = body["name"]
return Response(hello(name))Mnoho dalších JavaScript API je dostupných v Python Workers přes FFI, takže můžete podobným způsobem volat i další metody.
Jakmile upravíte src/entry.py, Wrangler automaticky restartuje místní
vývojový server.
Pokud nyní odešlete požadavek POST se správným tělem, váš Worker odpoví personalizovanou zprávou.
curl --header "Content-Type: application/json" \
--request POST \
--data '{"name": "Python"}' http://localhost:8787Hello, Python!Vracení odpovědí JSON
Chcete-li z Python Workeru vrátit JSON, použijte Response.json():
from workers import WorkerEntrypoint, Response
class Default(WorkerEntrypoint):
async def fetch(self, request):
data = {"message": "Hello", "status": "ok"}
return Response.json(data) env Atribut
env atribut na WorkerEntrypoint lze použít pro přístup k
proměnné prostředí,
secrets, a
vazby.
Zkusme si například nastavit a použít proměnnou prostředí v Python Workeru. Nejprve přidejte proměnnou prostředí do Konfigurační soubor Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "hello-python-worker",
"main": "src/entry.py",
"compatibility_flags": [
"python_workers"
],
// Set this to today's date
"compatibility_date": "2026-08-28",
"vars": {
"API_HOST": "example.com"
}
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "hello-python-worker"
main = "src/entry.py"
compatibility_flags = [ "python_workers" ]
# Set this to today's date
compatibility_date = "2026-08-28"
[vars]
API_HOST = "example.com"Poté můžete přistupovat k API_HOST proměnnou prostředí přes env parametr:
from workers import WorkerEntrypoint, Response
class Default(WorkerEntrypoint):
async def fetch(self, request):
return Response(self.env.API_HOST)Moduly
Python workery lze rozdělit do více souborů.
Vytvoříme nový soubor Python s názvem src/hello.py:
def hello(name):
return "Hello, " + name + "!"Nyní můžeme upravit src/entry.py abyste využili nový modul.
from hello import hello
from workers import WorkerEntrypoint, Response
class Default(WorkerEntrypoint):
async def fetch(self, request):
return Response(hello("World"))Jakmile upravíte src/entry.py, pywrangler automaticky rozpozná změnu a
znovu načte váš Worker.
Typy a automatické dokončování
workers-runtime-sdk balíček poskytuje runtime SDK pro Python Workers.
Tento balíček se automaticky nainstaluje a zahrne do vašeho workeru, když použijete pywrangler,
ale ho můžete také nainstalovat ručně, abyste mohli využívat nápovědu k typům a automatické doplňování
ve vašem IDE.
Chcete-li je zapnout, přidejte workers-runtime-sdk balíček do vašeho pyproject.toml .
dependencies = [
"workers-runtime-sdk"
]Kromě toho můžete vygenerovat typy na základě konfigurace svého Workeru pomocí uv run pywrangler types
Zahrnuje to Env typy na základě vašich vazeb, pravidel modulů a runtime typů na základě compatibility_date
a compatibility_flags ve vašem konfiguračním souboru. Viz
Aktualizace pywrangler
Chcete-li přejít na nejnovější verzi pywrangler globálně spusťte následující příkaz:
uv tool upgrade workers-pyChcete-li přejít na nejnovější verzi pywrangler v konkrétním projektu spusťte následující příkaz:
uv lock --upgrade-package workers-pyCo dál
- Přečtěte si podrobnosti o místním vývoji, nasazení a jak fungují Python Workers.
- Prozkoumejte balíček dokumentaci, kde najdete pokyny k použití balíčků v Python Workers.
- Seznamte se s tím, které části Standardní knihovna Pythonu jsou podporovány v Python Workers.
- Přečtěte si o Python Workers foreign function interface (FFI), a jak jej použít k práci s vazby a Runtime API.