[Python] Consiglio su web framework

Davide Muzzarelli davide a muzzarelli.net
Mar 23 Maggio 2023 15:19:17 CEST


On 23/05/23 09:45, Giuliano Curti wrote:
> Questa è un'altra importante considerazione di cui terrò conto; è che 
> ieri, iniziando a vedere genropy e flask mi sono sembrati molto 
> sovradimensionati rispetto al mio obiettivo.

Se è così puoi usare semplicemente la libreria aiohttp senza alcun 
framework. Non c'è nemmeno bisogno di un server web di fronte come 
Nginx, anche se sarebbe più efficiente nel servire i file.

https://aiohttp.readthedocs.io/

Lo uso sia per piccoli progetti che per sistemi complessi. Non solo è 
tra i più veloci ma è anche popolare, ben manutenuto e stabile.

Per monitorarlo uso Gunicorn (in modalità async con il velocissimo uvloop):

   gunicorn server:app --worker-class aiohttp.GunicornUVLoopWebWorker

Dove "server" è il file "server.py" e "app" è la variabile che contiene 
l'applicazione aiohttp.

In sviluppo aggiungo questo flag:

   --reload

Le dipendenze che uso sono pressoché solo queste:

aiohttp
asyncpg (preferisco Postgres che è leggero anche su di un Raspberry Pi)
gunicorn (mantiene l'applicazione attiva e la riavvia se necessario)
jinja2 (template engine che uso per HTML, email e SQL)
marshmallow (per validare sia form che JSON)
uvloop (rende async ancora più veloce)

Buona giornata,
Davide Muzzarelli


Maggiori informazioni sulla lista Python