例
Cloudflareには、Workers Example galleryに多くのPythonの例があります。
これらの例に加えて、Python特有の動作を示す以下の例を考慮してください。
from js import Responsefrom urllib.parse import urlparse, parse_qs
async def on_fetch(request, env): # 受信リクエストURLを解析 url = urlparse(request.url) # クエリパラメータをPythonの辞書に解析 params = parse_qs(url.query)
if "name" in params: greeting = "こんにちは、{name}".format(name=params["name"][0]) return Response.new(greeting)
if url.path == "/favicon.ico": return Response.new("")
return Response.new("こんにちは、世界!")from js import Response
async def on_fetch(request): name = (await request.json()).name return Response.new("こんにちは、{name}".format(name=name))# JavaScriptコンソールAPIを使用するためにfrom js import console, Response# ネイティブPythonロギングを使用するためにimport logging
async def on_fetch(request): # JavaScriptのコンソールAPIを使用 # https://developer.mozilla.org/en-US/docs/Web/API/console console.log("Pythonからのconsole.log!")
# または、ネイティブPythonロガーを使用 logger = logging.getLogger(__name__)
# デフォルトレベルはwarningです。これをinfoに変更できます。 logging.basicConfig(level=logging.INFO)
logger.error("Pythonからのエラー!") logger.info("Pythonからの情報ログ!")
# または単にprint()を使用 print("Pythonからのprint()!")
return Response.new("ログ出力をテストしています!")from js import Response, Objectfrom pyodide.ffi import to_js as _to_js
# to_jsはPythonの辞書とJavaScriptのオブジェクトの間で変換しますdef to_js(obj): return _to_js(obj, dict_converter=Object.fromEntries)
async def on_fetch(request, env): # バインディングは'env'パラメータで利用可能です # https://developers.cloudflare.com/queues/
# デフォルトのcontentTypeは"json"です # プレーンテキスト文字列も渡すことができます await env.QUEUE.send("hello", contentType="text") # JSONペイロードを送信 await env.QUEUE.send(to_js({"hello": "world"}))
# レスポンスを返す return Response.json(to_js({"write": "success"}))from js import Response
async def on_fetch(request, env): results = await env.DB.prepare("PRAGMA table_list").all() # JSONレスポンスを返す return Response.json(results)新しいD1データベースを作成し、D1へのバインディングを構成する方法についての詳細なチュートリアルは、Query D1 from Python Workersを参照してください。
- WorkersとPythonに不慣れな方は、始めるガイドを参照してください
- PythonからJavaScriptメソッドを呼び出し、JavaScriptオブジェクトにアクセスする方法についてもっと学びましょう
- 現在Python Workersで利用可能なサポートされているパッケージとバージョンを理解しましょう。