Verwenden Sie das FastAPI-Framework, um internationale Webanwendungen zu erstellen
FastAPI ist ein leistungsstarkes Python-Webframework, das Python-Typ-Annotationen und leistungsstärkere asynchrone Unterstützung kombiniert, um die Entwicklung von Webanwendungen einfacher, schneller und zuverlässiger zu machen. Beim Erstellen einer internationalen Webanwendung bietet FastAPI praktische Tools und Konzepte, mit denen die Anwendung problemlos mehrere Sprachen unterstützen kann.
Im Folgenden gebe ich ein konkretes Codebeispiel für die Verwendung des FastAPI-Frameworks zum Erstellen einer Webanwendung, die die Internationalisierung unterstützt:
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
Sie Sie können die Anwendung unter http://localhost:8000 anzeigen. Die Standardsprache ist Englisch. Sie können die Sprache über den URL-Parameter sprache
ändern, z. B. http://localhost:8000/?sprache =zh . language
来切换语言,比如http://localhost:8000/?language=zh。
以上示例中,我们使用了FastAPI提供的国际化中间件,通过在HTTP请求头中添加Accept-Language来指定用户的语言偏好,从而实现多语言支持。在应用中我们使用了Jinja2模板引擎来渲染页面,通过在模板中使用{{ _('xxx') }}
{{ _('xxx') }}
in der Vorlage verwenden. Durch das obige Beispiel können wir ganz einfach eine Webanwendung erstellen, die die Internationalisierung unter dem FastAPI-Framework unterstützt und so eine bessere Benutzererfahrung und globale Dienste bietet. 🎜Das obige ist der detaillierte Inhalt vonErstellen Sie internationale Webanwendungen mit dem FastAPI-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!