Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan WebSockets untuk Kemas Kini Data Masa Nyata dalam Jinja2 dengan FastAPI?

Bagaimana untuk Melaksanakan WebSockets untuk Kemas Kini Data Masa Nyata dalam Jinja2 dengan FastAPI?

Barbara Streisand
Barbara Streisandasal
2024-10-21 06:12:30562semak imbas

How to Implement WebSockets for Real-Time Data Updates in Jinja2 with FastAPI?

Bagaimana untuk Mendapatkan Senarai Item yang Dikemas kini dalam Templat Jinja2 Menggunakan FastAPI?

Dalam templat Jinja2, anda boleh memaparkan data sedia ada menggunakan gelung, seperti memaparkan ulasan pada catatan blog. Walau bagaimanapun, apabila item baharu ditambah, Jinja2 tidak menyediakan cara asli untuk mengemas kini senarai secara dinamik.

Penyelesaian Potensi menggunakan WebSockets

Penyelesaian biasa untuk kemas kini masa nyata dalam aplikasi web ialah untuk menggunakan WebSockets. Kod Python berikut menyediakan titik akhir WebSocket:

<code class="python">from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.templating import Jinja2Templates

app = FastAPI()
templates = Jinja2Templates(directory="templates")

class ConnectionManager:
    def __init__(self):
        self.active_connections = []

    async def connect(self, websocket: WebSocket):
        await websocket.accept()
        self.active_connections.append(websocket)

    def disconnect(self, websocket: WebSocket):
        self.active_connections.remove(websocket)

    async def broadcast(self, message: str):
        for connection in self.active_connections:
            await connection.send_json(message)

manager = ConnectionManager()</code>

Dalam templat index.html, kami mewujudkan sambungan WebSocket dan mendengar mesej masuk:

<code class="html"><script>
  var ws = new WebSocket("ws://localhost:8000/ws");
  ws.onmessage = function(event) {
    // Handle new data and update UI accordingly
  };
</script></code>

Titik akhir WebSocket kemudiannya boleh menyiarkan sebarang kemas kini kepada pelanggan yang disambungkan. Ini membolehkan paparan masa nyata dan dinamik senarai ulasan yang dikemas kini.

Nota:

Walaupun WebSockets merupakan penyelesaian yang berdaya maju untuk kes penggunaan ini, adalah penting untuk mempertimbangkan pendekatan alternatif seperti Alpine JS x-for loops atau ReactJS untuk interaksi UI yang lebih kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan WebSockets untuk Kemas Kini Data Masa Nyata dalam Jinja2 dengan 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