Maison développement back-end Tutoriel Python Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel

Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel

Jul 29, 2023 pm 06:09 PM
fastapi 推送通知 实时更新

Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel

Introduction :
Avec le développement continu d'Internet, les mises à jour des données en temps réel deviennent de plus en plus importantes. Par exemple, dans des scénarios d'application tels que le trading en temps réel, la surveillance en temps réel et les jeux en temps réel, nous devons mettre à jour les données en temps opportun pour fournir les informations les plus précises et la meilleure expérience utilisateur. FastAPI est un framework Web moderne basé sur Python qui offre un moyen simple et efficace de créer des applications Web hautes performances. Cet article explique comment utiliser FastAPI pour implémenter des notifications push afin de mettre à jour les données en temps réel.

Étape 1 : Préparation
Tout d'abord, nous devons installer FastAPI et les bibliothèques dépendantes correspondantes. Il peut être installé à l'aide de la commande suivante :

pip install fastapi
pip install uvicorn
Copier après la connexion

Ensuite, nous devons créer un fichier Python et le nommer main.py. Nous y écrirons notre application FastAPI. main.py。我们将在其中编写我们的FastAPI应用程序。

步骤二:编写推送通知逻辑
我们将使用WebSocket来实现推送通知的功能。WebSocket是一种在客户端和服务器之间实现全双工通信的协议。在FastAPI中,可以使用第三方库fastapi-websocket来轻松地为我们的应用程序添加WebSocket支持。可以使用以下命令来安装该库:

pip install fastapi-websocket
Copier après la connexion

main.py中,我们首先导入所需的模块:

from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from fastapi import WebSocket, WebSocketDisconnect

from fastapi_websocket_pubsub import PubSubEndpoint
from fastapi_websocket_pubsub import PubSubWebSocketEndpoint
Copier après la connexion

然后,我们创建一个FastAPI应用程序:

app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")

templates = Jinja2Templates(directory="templates")
Copier après la connexion

接下来,我们需要定义WebSocket的逻辑。我们将创建一个WebSocket的子类,并在其中实现推送通知的功能:

class NotificationsWebSocket(WebSocketEndpoint):
async def on_receive(self, websocket: WebSocket, data: str):
    # 在这里实现推送通知的逻辑
    # 可以根据需要订阅特定的主题或频道

async def on_connect(self, websocket: WebSocket):
    await websocket.accept()

async def on_disconnect(self, websocket: WebSocket, close_code: int):
    await self.pubsub.unsubscribe(self.room_name, websocket)

app.add_websocket_route("/ws", NotificationsWebSocket)
Copier après la connexion

on_receive方法中,我们可以根据需要订阅特定的主题或频道,并通过WebSocket将新数据发送给客户端。在FastAPI应用程序中,我们可以使用PubSubEndpoint来管理订阅和发布的逻辑。可以使用以下命令来安装fastapi_websocket_pubsub库:

pip install fastapi_websocket_pubsub
Copier après la connexion

main.py中,我们导入PubSubEndpoint并创建一个实例:

from fastapi_websocket_pubsub import PubSubEndpoint

pubsub = PubSubEndpoint()
Copier après la connexion

然后,我们将pubsub实例传递给WebSocket的子类,以便在其中使用推送通知的功能:

class NotificationsWebSocket(WebSocketEndpoint):
    async def on_receive(self, websocket: WebSocket, data: str):
        # 在这里实现推送通知的逻辑
        await self.pubsub.publish(self.room_name, data)

    async def on_connect(self, websocket: WebSocket):
        await self.pubsub.subscribe(self.room_name, websocket)
        await websocket.accept()

    async def on_disconnect(self, websocket: WebSocket, close_code: int):
        await self.pubsub.unsubscribe(self.room_name, websocket)
Copier après la connexion

步骤三:创建前端页面
我们还需要创建一个前端页面,以便用户可以通过浏览器访问我们的应用程序。可以创建一个名为index.html的文件,并将其放在名为templates的文件夹中。在index.html中,我们可以使用WebSocket来订阅推送通知,并在接收到新数据时更新页面。以下是一个简单的示例:

<!DOCTYPE html>
<html>
<head>
    <title>Notifications</title>
</head>
<body>
    <h1>Notifications</h1>
    <ul id="messages"></ul>

    <script>
    const socket = new WebSocket("ws://localhost:8000/ws");
    
    socket.onopen = () => {
        console.log("WebSocket connection is open.");
    };
    
    socket.onmessage = (event) => {
        const message = document.createElement("li");
        message.textContent = event.data;
        document.getElementById("messages").appendChild(message);
    };
    
    socket.onclose = () => {
        console.log("WebSocket connection is closed.");
    };
    
    </script>
</body>
</html>
Copier après la connexion

步骤四:启动应用程序
main.py的末尾,我们需要添加以下代码以启动FastAPI应用程序:

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
Copier après la connexion

现在,我们可以使用以下命令启动我们的FastAPI应用程序:

python main.py
Copier après la connexion

完成!现在,我们可以通过浏览器访问http://localhost:8000

Étape 2 : Écrire la logique de notification push

Nous utiliserons WebSocket pour implémenter la fonction de notification push. WebSocket est un protocole qui permet une communication en duplex intégral entre le client et le serveur. Dans FastAPI, nous pouvons utiliser la bibliothèque tierce fastapi-websocket pour ajouter facilement la prise en charge de WebSocket à notre application. La bibliothèque peut être installée à l'aide de la commande suivante :
rrreee

Dans main.py, nous importons d'abord les modules requis : 🎜rrreee🎜Ensuite, nous créons une application FastAPI : 🎜rrreee🎜Ensuite, nous avons besoin pour définir la logique de WebSocket. Nous allons créer une sous-classe de WebSocket et y implémenter la fonction de notification push : 🎜rrreee🎜Dans la méthode on_receive, nous pouvons nous abonner à des sujets ou à des canaux spécifiques selon les besoins et envoyer de nouvelles données via WebSocket Envoyé au client . Dans les applications FastAPI, nous pouvons utiliser PubSubEndpoint pour gérer la logique d'abonnement et de publication. La bibliothèque fastapi_websocket_pubsub peut être installée à l'aide de la commande suivante : 🎜rrreee🎜Dans main.py, on importe PubSubEndpoint et créons une instance : 🎜rrreee🎜Ensuite, on passe le pubsub exemple Donnez une sous-classe de WebSocket pour y utiliser la fonctionnalité des notifications push : 🎜rrreee🎜Troisième étape : créer une page frontale🎜 Nous devons également créer une page frontale afin que les utilisateurs puissent accéder à notre application via le navigateur. Vous pouvez créer un fichier appelé index.html et le placer dans un dossier appelé templates. Dans index.html, nous pouvons utiliser WebSocket pour nous abonner aux notifications push et mettre à jour la page lorsque de nouvelles données sont reçues. Voici un exemple simple : 🎜rrreee🎜 Étape 4 : Démarrez l'application 🎜 À la fin de main.py, nous devons ajouter le code suivant pour démarrer l'application FastAPI : 🎜rrreee🎜Maintenant, nous peut utiliser La commande suivante démarre notre application FastAPI : 🎜rrreee🎜Terminé ! Maintenant, nous pouvons visiter http://localhost:8000 via le navigateur pour afficher la fonction de notification push. Lorsque de nouvelles données sont transmises, la page sera automatiquement mise à jour pour afficher les dernières informations. 🎜🎜Conclusion : 🎜Cet article explique comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel. En utilisant les bibliothèques WebSocket et PubSubEndpoint, nous pouvons facilement implémenter la fonctionnalité de notification push. Cette méthode de mise à jour des données en temps réel peut être appliquée à de nombreux scénarios d'application, tels que le trading en temps réel, la surveillance en temps réel et les jeux en temps réel. J'espère que cet article pourra vous être utile et j'aimerais que vous puissiez utiliser FastAPI pour créer des applications Web plus efficaces et en temps réel. 🎜

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Aug 01, 2023 am 09:44 AM

Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Introduction : FastAPI et Nginx sont deux outils de développement Web très populaires. FastAPI est un framework Python hautes performances et Nginx est un puissant serveur proxy inverse. L'utilisation conjointe de ces deux outils peut améliorer les performances et la fiabilité de vos applications Web. Dans cet article, nous apprendrons comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge. Qu'est-ce que la génération inverse

Comment obtenir une concurrence élevée et un équilibrage de charge des requêtes dans FastAPI Comment obtenir une concurrence élevée et un équilibrage de charge des requêtes dans FastAPI Jul 31, 2023 pm 01:50 PM

Comment obtenir une concurrence élevée et un équilibrage de charge des requêtes dans FastAPI Introduction : Avec le développement d'Internet, la concurrence élevée des applications Web est devenue un problème courant. Lorsque nous traitons un grand nombre de demandes, nous devons utiliser des frameworks et des technologies efficaces pour garantir les performances et l’évolutivité du système. FastAPI est un framework Python hautes performances qui peut nous aider à atteindre une concurrence élevée et un équilibrage de charge. Cet article explique comment utiliser FastAPI pour obtenir une concurrence élevée et un équilibrage de charge des requêtes. Nous utiliserons Python3.7

Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel Jul 29, 2023 pm 06:09 PM

Comment utiliser les notifications push dans FastAPI pour mettre à jour les données en temps réel Introduction : Avec le développement continu d'Internet, les mises à jour des données en temps réel deviennent de plus en plus importantes. Par exemple, dans des scénarios d'application tels que le trading en temps réel, la surveillance en temps réel et les jeux en temps réel, nous devons mettre à jour les données en temps opportun pour fournir les informations les plus précises et la meilleure expérience utilisateur. FastAPI est un framework Web moderne basé sur Python qui offre un moyen simple et efficace de créer des applications Web hautes performances. Cet article explique comment utiliser FastAPI pour implémenter

Comment implémenter la protection de sécurité des requêtes et la réparation des vulnérabilités dans FastAPI Comment implémenter la protection de sécurité des requêtes et la réparation des vulnérabilités dans FastAPI Jul 29, 2023 am 10:21 AM

Comment implémenter la protection de sécurité des demandes et la réparation des vulnérabilités dans FastAPI Introduction : Dans le processus de développement d'applications Web, il est très important d'assurer la sécurité de l'application. FastAPI est un framework Web Python rapide (hautes performances) et facile à utiliser avec génération automatique de documentation. Cet article explique comment implémenter la protection de sécurité des demandes et la réparation des vulnérabilités dans FastAPI. 1. Utilisez le protocole HTTP sécurisé L'utilisation du protocole HTTPS constitue la base pour garantir la sécurité des communications des applications. FastAPI fournit

Comment implémenter le basculement et les nouvelles tentatives de requêtes dans FastAPI Comment implémenter le basculement et les nouvelles tentatives de requêtes dans FastAPI Jul 28, 2023 pm 01:33 PM

Comment implémenter la récupération après échec de demande et les nouvelles tentatives dans FastAPI Introduction : Lors du développement d'applications Web, nous avons souvent besoin de communiquer avec d'autres services. Cependant, ces services peuvent rencontrer des pannes, telles que des pannes temporaires de réseau ou des délais de réponse. Pour que nos applications restent fiables, nous devons nous remettre des échecs et réessayer si nécessaire. Dans cet article, nous apprendrons comment implémenter le basculement et les nouvelles tentatives de requêtes dans FastAPI. FastAPI est une application Web moderne basée sur Python

Comment implémenter le téléchargement et le traitement de fichiers dans FastAPI Comment implémenter le téléchargement et le traitement de fichiers dans FastAPI Jul 28, 2023 pm 03:01 PM

Comment implémenter le téléchargement et le traitement de fichiers dans FastAPI FastAPI est un framework Web moderne et performant, facile à utiliser et puissant. Il fournit une prise en charge native du téléchargement et du traitement de fichiers. Dans cet article, nous apprendrons comment implémenter les fonctions de téléchargement et de traitement de fichiers dans le framework FastAPI, et fournirons des exemples de code pour illustrer les étapes de mise en œuvre spécifiques. Tout d’abord, nous devons importer les bibliothèques et modules requis : fromfastapiimportFastAPI,UploadF

Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses Jul 28, 2023 pm 08:17 PM

Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses Introduction : Dans le développement Web moderne, les performances sont une préoccupation importante. Si notre application ne peut pas répondre rapidement aux demandes des clients, cela peut entraîner une baisse de l'expérience utilisateur, voire un désabonnement des utilisateurs. L'utilisation du cache est l'une des méthodes courantes pour améliorer les performances des applications Web. Dans cet article, nous explorerons comment utiliser la mise en cache pour accélérer la vitesse de réponse du framework FastAPI et fournirons des exemples de code correspondants. 1. Qu'est-ce que le cache ? Un cache est un cache qui sera consulté fréquemment

Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI Jul 30, 2023 am 11:45 AM

Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI Introduction : Avec le développement rapide des applications Web, la connexion à la base de données et le traitement des transactions sont devenus un sujet très important. FastAPI est un framework Web Python hautes performances apprécié des développeurs pour sa rapidité et sa facilité d'utilisation. Dans cet article, nous présenterons comment implémenter des connexions et des transactions de base de données dans FastAPI pour vous aider à créer des applications Web fiables et efficaces. Partie 1 : Connexion à la base de données dans FastA

See all articles