INTEGRITY Dokumentace

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:8787
Hello, 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-py

Chcete-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-py

Co dál