FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する
FastAPI は、Python 型の注釈と高性能の非同期サポートを組み合わせた高性能 Python Web フレームワークであり、開発を容易にします。 Web アプリケーションをより簡単、より速く、より信頼性の高いものにします。国際的な Web アプリケーションを構築する場合、FastAPI は、アプリケーションで複数の言語を簡単にサポートできる便利なツールと概念を提供します。
以下に、FastAPI フレームワークを使用して国際化をサポートする Web アプリケーションを構築する方法を紹介する具体的なコード例を示します。
pip install fastapi[all]
from typing import Optional from fastapi import FastAPI from fastapi import Request, Depends from fastapi.templating import Jinja2Templates from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse from starlette.templating import Jinja2Templates from starlette.requests import Request from fastapi.i18n import ( I18nMiddleware, get_accept_languages ) app = FastAPI() # 加载静态文件 app.mount("/static", StaticFiles(directory="static"), name="static") # 初始化国际化中间件 app.add_middleware(I18nMiddleware, default_language="en", translation_directory="translations") templates = Jinja2Templates(directory="templates") # 通过GET方法获取主页面 @app.get("/", response_class=HTMLResponse) async def read_root(request: Request, languages: str = Depends(get_accept_languages)): return templates.TemplateResponse("index.html", {"request": request, "languages": languages}) # 通过POST方法获取表单提交的数据并返回 @app.post("/form") async def form_post(request: Request): form_data = await request.form() return {"data": form_data}
msgid "Hello" msgstr "Hello" msgid "Submit" msgstr "Submit"
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{{ _('Welcome to my website') }}</title> </head> <body> <h1>{{ _('Hello') }}</h1> <p>{{ _('This is a sample web application') }}</p> <form action="/form" method="post"> <input type="text" name="name" placeholder="{{ _('Enter your name') }}"> <button type="submit">{{ _('Submit') }}</button> </form> <h2>{{ _('Supported Languages') }}</h2> <ul> {% for language in languages %} <li><a href="/?language={{ language }}">{{ language }}</a></li> {% endfor %} </ul> </body> </html>
uvicorn app:app --reload
http://localhost:8000 にアクセスすると、アプリケーションを表示できます。デフォルトの言語は英語で、URL パラメータを渡すことができます language
を使用して言語を切り替えます (http://localhost:8000/? language=zh など)。
上記の例では、FastAPI が提供する国際化ミドルウェアを使用して、HTTP リクエスト ヘッダーに Accept-Language を追加することでユーザーの言語設定を指定し、多言語サポートを実現しています。このアプリケーションでは、Jinja2 テンプレート エンジンを使用してページをレンダリングし、テンプレート内で {{ _('xxx') }}
を使用して翻訳を導入します。
上記の例を通じて、FastAPI フレームワークの下で国際化をサポートする Web アプリケーションを簡単に構築し、より良いユーザー エクスペリエンスとグローバル サービスを提供できます。
以上がFastAPI フレームワークを使用して国際的な Web アプリケーションを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。