[Python] MySQL Connector e best practice.

Filippo Tenaglia filippo80 a gmail.com
Mer 8 Mar 2017 16:37:21 CET


Il 08/03/17, python-request a lists.python.it<python-request a lists.python.it>
ha scritto:
> Invia le richieste di iscrizione alla lista Python all'indirizzo
> 	python a lists.python.it
>
> Per iscriverti o cancellarti attraverso il web, visita
> 	http://lists.python.it/mailman/listinfo/python
> oppure, via email, manda un messaggio con oggetto `help' all'indirizzo
> 	python-request a lists.python.it
>
> Puoi contattare la persona che gestisce la lista all'indirizzo
> 	python-owner a lists.python.it
>
> Se rispondi a questo messaggio, per favore edita la linea dell'oggetto
> in modo che sia più utile di un semplice "Re: Contenuti del digest
> della lista Python..."
>
>
> Argomenti del Giorno:
>
>    1. Re: Cosa si fa al Pycon 8 il 6 Aprile? (Francesco Maida)
>    2. Re: Cosa si fa al Pycon 8 il 6 Aprile? (Matteo Benci)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 8 Mar 2017 12:07:02 +0100
> From: Francesco Maida <francesco.maida a gmail.com>
> To: Discussioni generali sul linguaggio Python
> 	<python a lists.python.it>
> Subject: Re: [Python] Cosa si fa al Pycon 8 il 6 Aprile?
> Message-ID:
> 	<CAFUqv_oJ=hDRkykG618TzbiD4E3_55e5h5xj28UxqVU-a1Wo4A a mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Il giorno 8 marzo 2017 10:59, Matteo Benci <matteo a pycon.it> ha scritto:
>
>> Ciao Fancesco,
>> il primo giorno sarà un giorno dedicato ai niubbi e non sarà parte
>> direttamente della conferenza ma piuttosto una iniziativa parallela per il
>> supporto della diffusione di Python :)
>>
>
>
> Iniziativa lodevole ed utile, che se non ho letto male comincia alle 15:00.
> Non sto dando colpe all'organizzazione, eh... scemo io che ho accettato di
> acquistare anche il pacchetto albergo direttamente dal sito del Pycon che
> prevede check-in mercoledì 5 e check-out domenica 9 senza informarmi prima
> della cosa.
> -------------- parte successiva --------------
> Un allegato HTML è stato rimosso...
> URL:
> <http://lists.python.it/pipermail/python/attachments/20170308/1ac3e9fe/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 8 Mar 2017 12:11:22 +0100
> From: Matteo Benci <matteo a pycon.it>
> To: python a lists.python.it
> Subject: Re: [Python] Cosa si fa al Pycon 8 il 6 Aprile?
> Message-ID: <58BFE6DA.1030708 a pycon.it>
> Content-Type: text/plain; charset="utf-8"
>
> Beh l'albergo è acquistabile anche solo per una notte, quelle è il
> periodo di disponibilità..
>
> Comunque se vuoi chiedere il rimborso quantomeno della prima notte è
> possibile farlo fino ale 13 marzo :)
> Altrimenti se ti va di fare il mentor per il workshop per i niubbi sei
> il benvenuto naturalmente!
>
> Purtroppo il giorno di ferie non possiamo restituirtelo indietro :\
>
> Ciao,
> Matteo
>
> Il 08/03/2017 12:07, Francesco Maida ha scritto:
>> Il giorno 8 marzo 2017 10:59, Matteo Benci <matteo a pycon.it
>> <mailto:matteo a pycon.it>> ha scritto:
>>
>>     Ciao Fancesco,
>>     il primo giorno sarà un giorno dedicato ai niubbi e non sarà parte
>>     direttamente della conferenza ma piuttosto una iniziativa
>>     parallela per il supporto della diffusione di Python :)
>>
>>
>>
>> Iniziativa lodevole ed utile, che se non ho letto male comincia alle
>> 15:00.
>> Non sto dando colpe all'organizzazione, eh... scemo io che ho
>> accettato di acquistare anche il pacchetto albergo direttamente dal
>> sito del Pycon che prevede check-in mercoledì 5 e check-out domenica 9
>> senza informarmi prima della cosa.
>>
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>> --
>> logo 	  	
>>
>>
>>
>> *Matteo Benci**
>> Event Set-Up & Coordinator
>> PyCon Otto | Florence | April 6-9, 2017
>> web: pycon.it <http://www.pycon.it> | facebook.com/pyconitalia
>> <https://www.facebook.com/pyconitalia>
>> Phone: +393495577593
>> *
>>
> -------------- parte successiva --------------
> Un allegato HTML è stato rimosso...
> URL:
> <http://lists.python.it/pipermail/python/attachments/20170308/cf587706/attachment.html>
> -------------- parte successiva --------------
> Un allegato non testuale è stato rimosso....
> Nome:        a40c61.png
> Tipo:        image/png
> Dimensione:  30341 bytes
> Descrizione: non disponibile
> URL:
> <http://lists.python.it/pipermail/python/attachments/20170308/cf587706/attachment.png>
>
> ------------------------------
>
> Subject: Chiusura del digest
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
> ------------------------------
>
> Fine di Digest di Python, Volume 133, Numero 8
> **********************************************
>
Ciao a tutti,
dopo essermi fatto un lungo giro sul tutorial di Python, ed aspettando
notizie dalla mailing list di NVDA, ho pensato di provare la
connessione ad un database mysql ed ho installato MySQL Connector per
farlo.
Ora, fino a quando faccio test sul prompt chi se ne frega se la
connessione rimane aperta fino alla chiusura del prompt ma volevo
andare avanti creando una serie di classi da richiamare da un file py
che userei stile interfaccia dinamica.
L'approccio che sto prendendo è questo:
- config.py contiene i dati della connessione al database;
- connection.py contiene un metodo che riceve la stringa contenente il
codice SQL e restituisce un oggetto di tipo list() con il risultato
della query.

poi mi sono fermato ... e mi sono chiesto: è corretto aprire e
chiudere ogni volta connessione e cursore?
Ignorate, per il momento, l'assenza del try e dei metodi commit e
rollback ... credo sia tutto connesso al fatto se è corretto gestire
le operazioni attraverso un solo metodo o dovrei fare qualcosa di
diverso!
Comunque, ecco di seguito il codice di connection.py così vi fate
un'idea di cosa stavo scrivendo:

import mysql.connector
import config
import config.db_connection_params as params

def db_query(query):
    cnx = mysql.connector.connect(params)
    cursor = cnx.cursor(dictionary=True)
    cursor.execute(query, (hire_start, hire_end))
    obj=list(cursor)
    cursor.close()
    cnx.close()
    return obj




Grazie per tutto l'aiuto che mi darete!


Maggiori informazioni sulla lista Python