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

Barbara Streisand
Lepaskan: 2024-10-21 06:12:30
asal
490 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!