Place de nodejs pour un backdev python

Je suis allergique à javascipt

a marqué ce sujet comme résolu.
Auteur du sujet

salut, j’adore python, et lorsque j’ai eu besoin de javascipt, je me débrouillais avec brython ou avec coffeescript. je travaille avec flask qui me plaît.

Actuellement je lutte pour avoir du pubsub, push, notifications sans longpolling, webhook…

je voulais savoir si inclure un peu de nodejs dans un site fait avec flask serai un mal nécessaire.

+0 -0

je voulais savoir si inclure un peu de nodejs dans un site fait avec flask serai un mal nécessaire.

buffalo974

Je ne trouve pas ça sale du tout. Par contre si tu mélanges flask et ExpressJS ou encore JavaScript et Brython, ça fait déjà moins propre.

Un langage front, un langage back. À la limite 1 langage front, 2 langages back. Mais plusieurs langage en front franchement c’est sale.

ache.one                 🦹         👾                                🦊

+0 -0

Salut,

Actuellement je lutte pour avoir du pubsub, push, notifications sans longpolling

Pas besoin d’utiliser du Node. Faire une application asyncio peut résoudre ton problème. Pour le push, les notifications et le pubsub, tu peux simplement utiliser faire un serveur Websocket avec Quart. Quart est un port de Flask qui est compatible avec asyncio (pour convertir une application Flask, il suffit globalement d’ajouter des async devant les définitions de fonctions et des await devant la plupart des appels) mais qui te permet en plus de définir des websockets avec une API très simple.

Je l’utilise depuis 1 ou 2 ans et ça fonctionne bien. Il te faut Python 3.7 par contre (il y a un paquet dédié que tu peux installer depuis les dépôts si tu es sous Ubuntu LTS, ou c’est la version par défaut dans les Ubuntu récentes).

Pour avoir du pubsub sur des Websockets, je dirais que tu n’as pas besoin d’une surcouche dédiée, il suffit de faire une classe avec un ou deux gros dictionnaires des utilisateurs qui gèrent ton état, et si tu as besoin de te souvenir de ce à quoi l’utilisateur a souscrit derrière, tu peux imbriquer une autre classe pour les utilisateurs (c’est ce que je fais en général).

Si tu tiens vraiment à avoir des abstractions dédiées pour le pubsub, regarde du côté de Crossbar/Autobahn (un peu trop complexe à mon goût).

webhook…

Faire une application web basée sur asyncio te permet également de mutualiser ta boucle événementielle avec des clients HTTP (en plus du serveur). La bibliothèque pour faire du HTTP client avec asyncio la plus connue est aiohttp (l’API est un peu brouillon mais elle fonctionne, et c’est bien pratique).

Un langage front, un langage back. À la limite 1 langage front, 2 langages back. Mais plusieurs langage en front franchement c’est sale.

Je plussoie. Perso, c’est Python (Flask ou Quart) en backend, JavaScript en frontend. Pas de LESS/Gulp/Browserpack/SASS/Angular/React/Vue/jQuery/…, les navigateurs d’aujourd’hui et leurs APIs sont suffisamment évolués pour te permettre de te passer de surcouches (et d’optimisations pour éviter que ces surcouches ne tuent tes performances, vu que le problème ne se pose pas sans).

Bonne journée,

Édité par r0anne

Auteur du sujet

@ROANNE regardes telegram+telethon ou sinon pusher si tu connais pas, ça te plaira peut-être. si t’as un exemple de snippet pour du pubsub de ton crû, ça m’interesse.

j’avais contacté l’equipe de Quart, mais à part le côté asynchrone, j’ai pas eu d’extras.

Pour Crossbar+Autobahn j’ai abandonné pour l’instant.

Édité par buffalo974

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte