Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI

Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI

PHPz
PHPzasal
2023-09-29 15:53:081217semak imbas

Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI

Gunakan rangka kerja FastAPI untuk membina aplikasi web antarabangsa

FastAPI ialah rangka kerja web Python berprestasi tinggi yang menggabungkan anotasi jenis Python dan sokongan tak segerak yang berprestasi lebih baik untuk menjadikan pembangunan aplikasi web lebih mudah, pantas dan boleh dipercayai. Apabila membina aplikasi Web antarabangsa, FastAPI menyediakan alatan dan konsep yang mudah yang boleh menjadikan aplikasi menyokong berbilang bahasa dengan mudah.

Di bawah saya akan memberikan contoh kod khusus tentang cara menggunakan rangka kerja FastAPI untuk membina aplikasi web yang menyokong pengantarabangsaan:

  1. Pertama, kita perlu memasang FastAPI dan perpustakaan bergantung yang sepadan. Anda boleh menggunakan pip untuk memasang:
pip install fastapi[all]
  1. Buat fail app.py untuk mentakrifkan aplikasi web:
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}
  1. Buat folder terjemahan dalam direktori akar projek dan buat folder en di dalamnya, menggunakan Untuk menyimpan Bahasa Inggeris fail terjemahan. Cipta fail messages.po dalam folder en untuk mentakrifkan terjemahan Bahasa Inggeris:
msgid "Hello"
msgstr "Hello"

msgid "Submit"
msgstr "Submit"
  1. Buat fail index.html dalam folder templat untuk menentukan templat halaman:
<!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>
  1. Mulakan aplikasi:
uvicorn app:app --reload

boleh melihat aplikasi dengan melawati http://localhost:8000 Bahasa lalai ialah bahasa Inggeris Anda boleh menukar bahasa melalui parameter URL language, seperti http://localhost:8000/?language. =zh . language来切换语言,比如http://localhost:8000/?language=zh。

以上示例中,我们使用了FastAPI提供的国际化中间件,通过在HTTP请求头中添加Accept-Language来指定用户的语言偏好,从而实现多语言支持。在应用中我们使用了Jinja2模板引擎来渲染页面,通过在模板中使用{{ _('xxx') }}

Dalam contoh di atas, kami menggunakan perisian tengah pengantarabangsaan yang disediakan oleh FastAPI untuk menentukan pilihan bahasa pengguna dengan menambahkan Accept-Language dalam pengepala permintaan HTTP untuk mencapai sokongan berbilang bahasa. Dalam aplikasi, kami menggunakan enjin templat Jinja2 untuk memaparkan halaman, dan memperkenalkan terjemahan dengan menggunakan {{ _('xxx') }} dalam templat.

Melalui contoh di atas, kami boleh membina aplikasi web dengan mudah yang menyokong pengantarabangsaan di bawah rangka kerja FastAPI, memberikan pengalaman pengguna yang lebih baik dan perkhidmatan global. 🎜

Atas ialah kandungan terperinci Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn