Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Giuliano Curti
Il mar 13 giu 2023, 12:42 Davide Muzzarelli  ha
scritto:

Ciao Davide, grazie

On 13/06/23 09:18, Giuliano Curti wrote:
> > 1) .
>
> .
>
> Qui puoi approfondire per le connessioni concorrenti:
>
> https://www.sqlite.org/cgi/src/doc/begin-concurrent/doc/begin_concurrent.md


Vado subito a vedere :-)

E' meglio usare le connessioni in modalità Context Manager: ci pensa il
> context manager ad effettuare il commit .
>

Del commit penso di non aver bisogno, all'utente consento solo il SELECT
(l'utente in realtà compila dei campi e l'istruzione Ca compilo io).

>
> Gentili saluti,
> Davide Muzzarelli
>

Grazie, ciao,
Giuliano
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Davide Muzzarelli

On 13/06/23 09:18, Giuliano Curti wrote:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni 
SELECT) in due punti, due pagine diverse; mi chiedo se sia meglio 
un'apertura iniziale o se al contrario sia meglio aprire e chiudere il 
db quando richiesto?


Scusami, mi sono accorto ora che usi SQLite.

Con SQLite le connessioni in scrittura aprono il database bloccando 
altre connessioni, per cui se hai più processi o thread è necessario 
aprirle e chiuderle ad ogni uso.


Qui puoi approfondire per le connessioni concorrenti:

https://www.sqlite.org/cgi/src/doc/begin-concurrent/doc/begin_concurrent.md

E' meglio usare le connessioni in modalità Context Manager: ci pensa il 
context manager ad effettuare il commit appena finito. Fintanto che il 
commit non è fatto i dati non vengono salvati effettivamente su disco.


Qui hai un esempio:

https://docs.python.org/3/library/sqlite3.html#sqlite3-connection-context-manager

Gentili saluti,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Davide Muzzarelli

On 13/06/23 09:18, Giuliano Curti wrote:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni 
SELECT) in due punti, due pagine diverse; mi chiedo se sia meglio 
un'apertura iniziale o se al contrario sia meglio aprire e chiudere il 
db quando richiesto?


Sarebbe meglio avere un pool di connessioni, così si occupa esso ad 
aprirle solo quando necessario.


Una mia sensazione da niubbo mi fa pensare che meno aperto sta il db, 
meno possibilità di corruzione dei dati, quindi opterei per la seconda 
(apertura e chiusura ogni volta) però è magari una mia sindrome da 
ignoranza.


Non c'è mai corruzione dei dati, ci pensa il DB ad evitarle.

Aprire una connessione è più costoso che usarne una già aperta. La 
migliore ottimizzazione è appunto un pool di connessioni, piccolo o 
grande che sia.



2) Cookies.
Conosco poco l'argomento, ma penso di non doverne far uso e quindi non 
dovrei avere bisogno di segnalazioni all'utente e di richiedere / 
ottenere autorizzazioni.


Se apri il cookie per il solo login allora non hai bisogno del banner, 
inserirai la conferma per la privacy in fase di registrazione dell'utente.


Se apri però un qualsiasi cookie senza che l'utente abbia fatto 
espressamente login allora hai bisogno del banner.


Hai bisogno del banner anche se carichi risorse da altre sorgenti, come 
ad esempio: Google Fonts, CDN di terzi, Google Analytics.


Gentili saluti,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Giuliano Curti
Ciao a tutti,
rispolvero questi vecchio thread per un paio di informazioni che vi devo
chiedere.
Seguendo i vostri consigli sono andato avanti nel mio progetto e sotto,
così vanno a vederlo solo gli interessati, metto qualche notizia sul lavoro
fatto.

Le domande (non specifiche python, ma python è la marmellata che coinvolge
tutto, quindi spero qui tollerate :-) che volevo fare sono:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni SELECT)
in due punti, due pagine diverse; mi chiedo se sia meglio un'apertura
iniziale o se al contrario sia meglio aprire e chiudere il db quando
richiesto?
Non essendoci una fine della procedura non c'è in effetti una chiusura del
db, penso venga chiuso in automatico all'interruzione della procedura
(bottle ha solo la funzione run() interrotta con un ctl-C).
Una mia sensazione da niubbo mi fa pensare che meno aperto sta il db, meno
possibilità di corruzione dei dati, quindi opterei per la seconda (apertura
e chiusura ogni volta) però è magari una mia sindrome da ignoranza.

2) Cookies.
Conosco poco l'argomento, ma penso di non doverne far uso e quindi non
dovrei avere bisogno di segnalazioni all'utente e di richiedere / ottenere
autorizzazioni.
Ci sono eventualmente considerazioni normative e/o funzionali che
consigliano una strada diversa?

Grazie della pazienza, un saluto,
Giuliano

--
Lavoro fatto (cerco di essere breve, però disponibile ad ogni domanda).
Ricordo che il mio obiettivo era trasformare elenchi di documenti (atti
comunali) da un formato PDF ad un formato sqlite, quindi interrogabile, e
successivamente offrire liberamente la consultazione online.

La prima parte è essenzialmente conclusa; ho messo a punto 4+ script per
1) lettura degli elenchi PDF (PyPDF2)
2) estrazione delle informazioni significative (re)
3) validazione dei dati
4) importazione nel DB (sqlite3).

Il passo 2 è costituito a sua volta da più script perché gli elenchi
cambiano nel tempo; anziché scrivere un'unica procedura per coprire tutti i
casi ho preferito scrivere piccole procedure ad hoc, dettaglio cmq
marginale.

Sto affrontando la seconda parte e qui ho scelto, come indicato da molti di
voi, bottle.py.
A questo punto arrivano le domande fatte sopra.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python