[Python] dependency injection con i decoratori
Matteo Scarpa
matteo.scarpa a fundor333.com
Ven 2 Ott 2020 16:30:14 CEST
> ciao a tutti
>
> vorrei transformare una parte di codice da una chiamata a funzione a
> un decoratore: il codice fa dei controlli sulla validità di un json
> web token, quindi non è parte della business logic ma è un
> pre-requisito di ogni controller
>
> il problema è che a questo decoratore servono collaboratori, e non so
> come passarglieli
>
> per ora il workaround è mettere i collaboratori nella App [0], e
> recuperarli a runtime, ma mi chiedo se esistano metodi migliori
>
> ciao
>
> federico
Se ho capito bene tu vuoi fare una cosa tipo quella che fa flask con gli
url no? Esempio:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
In cui viene definito il path route nel decoratore.
Lo puoi fare scrivendo una cosa tipo:
def decoratore(func, collaboratori):
def inner(*args, **kwargs):
...
return inner
@decoratore(collaboratore1)
def func1():
pass
Spero di essere stato chiaro. Se vuoi vedere cose piú avanzate
suggerisco di dare una sbirciata al sorgente di Flask che fa proprio
queste cose.
Buon lavoro
Fundor333
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20201002/14ae50a5/attachment.html>
Maggiori informazioni sulla lista
Python