Heim > Backend-Entwicklung > Python-Tutorial > Erstellen Sie internationale Webanwendungen mit dem FastAPI-Framework

Erstellen Sie internationale Webanwendungen mit dem FastAPI-Framework

PHPz
Freigeben: 2023-09-29 15:53:08
Original
1373 Leute haben es durchsucht

Erstellen Sie internationale Webanwendungen mit dem FastAPI-Framework

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:

  1. Zuerst müssen wir FastAPI und die entsprechenden abhängigen Bibliotheken installieren. Sie können pip zum Installieren verwenden:
pip install fastapi[all]
Nach dem Login kopieren
  1. Erstellen Sie eine app.py-Datei, um die Webanwendung zu definieren:
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}
Nach dem Login kopieren
  1. Erstellen Sie einen Übersetzungsordner im Projektstammverzeichnis und erstellen Sie darin einen en-Ordner, um Englisch zu speichern Übersetzungsdateien. Erstellen Sie eine Datei „messages.po“ im Ordner „en“, um die englische Übersetzung zu definieren:
msgid "Hello"
msgstr "Hello"

msgid "Submit"
msgstr "Submit"
Nach dem Login kopieren
  1. Erstellen Sie eine index.html-Datei im Ordner „templates“, um die Seitenvorlage zu definieren:
<!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>
Nach dem Login kopieren
  1. Starten Sie die Anwendung:
uvicorn app:app --reload
Nach dem Login kopieren

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') }}

Im obigen Beispiel verwenden wir die von FastAPI bereitgestellte Internationalisierungs-Middleware, um die Sprachpräferenz des Benutzers anzugeben, indem wir Accept-Language im HTTP-Anforderungsheader hinzufügen, um mehrsprachige Unterstützung zu erreichen. In der Anwendung verwenden wir die Jinja2-Vorlagen-Engine zum Rendern der Seite und führen die Übersetzung ein, indem wir {{ _('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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage