Maison >développement back-end >Tutoriel Python >Créez des applications Web internationales à l'aide du framework FastAPI
Utilisez le framework FastAPI pour créer des applications Web internationales
FastAPI est un framework Web Python hautes performances qui combine des annotations de type Python et un support asynchrone hautes performances pour rendre le développement d'applications Web plus simple, plus rapide et fiable. Lors de la création d'une application Web internationale, FastAPI fournit des outils et des concepts pratiques qui permettent à l'application de prendre facilement en charge plusieurs langues.
Ci-dessous, je vais donner un exemple de code spécifique sur la façon d'utiliser le framework FastAPI pour créer une application Web prenant en charge l'internationalisation :
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
Vous Vous pouvez visualiser l'application en visitant http://localhost:8000. La langue par défaut est l'anglais. Vous pouvez changer de langue via le paramètre URL langue
, tel que http://localhost:8000/?langue. =zh . language
来切换语言,比如http://localhost:8000/?language=zh。
以上示例中,我们使用了FastAPI提供的国际化中间件,通过在HTTP请求头中添加Accept-Language来指定用户的语言偏好,从而实现多语言支持。在应用中我们使用了Jinja2模板引擎来渲染页面,通过在模板中使用{{ _('xxx') }}
{{ _('xxx') }}
dans le modèle. Grâce à l'exemple ci-dessus, nous pouvons facilement créer une application Web prenant en charge l'internationalisation dans le cadre FastAPI, offrant une meilleure expérience utilisateur et des services globaux. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!