Topic: connesione db esterno con python  (Letto 267 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline cionsi

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
connesione db esterno con python
« il: Aprile 28, 2020, 00:31 »
ciao a tutti, ho creato uno script che crea e popola in locale un db con dati estratti da un sito (ho controllato le policy). Ora vorrei provare a popolare un db esterno. Di preciso sto provando a popolare un db su altervista tramite phpmyadmin. Ho cercato e letto anche post qui nel forum ma non sono riuscito a capire.
Quale libreria mi consigliate di importare nello script? io ho provato questo codice:
Ho tentato di avviare una connessione e di utilizzare due query, una di inserimento e una di update


# Creation of PyMySQL Connection Object
try:
    conn = pymysql.connect(host="localhost",port=3306,db="my_test",user="test",password="")
except pymysql.MySQLError as e:
    print(e)
    sys.exit()
finally:
    print("Connection established sucessfully")
    conn.close() # You always have to close the connection
   
cursor = conn.cursor()
conn.begin() 

sql=("INSERT INTO Persone(ID, Nome) \ VALUES (?,?)", [k, column.get_text() ])
cursor.execute(sql)
conn.commit()

sql=("update Persone set Valore= (?) where ID = (?) ",(column.get_text(), k))
cursor.execute(sql)
conn.commit()


Ricevo questo codice di errore:
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione)"

Grazie a tutti
« Ultima modifica: Aprile 28, 2020, 13:04 da cionsi »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:connesione db esterno con python
« Risposta #1 il: Aprile 28, 2020, 13:42 »
Mah, c'è poco di sbagliato tecnicamente in quel codice... a parte che la seconda query riscrive sopra gli stessi dati della prima... ovviamente molto dipende da che cosa è quel "k" e che cosa è quel "column.gettext()"... inoltre, ovviamente quella query scrive *un* dato nella tabella... se ne hai molti probabilmente dovresti iterarci sopra con un for.

C'è poi da dire che non so da dove hai copiato quel try/except/finally ("You always have to close the connection"... ma LOLOLOL!), certo però che se in quel "finally" tu chiudi la connessione... beh, la chiudi sempre, prima di averla usata. A quel punto non so perché "conn.cursor()" non ti dia errore, ma qui va a sapere che codice stai usando davvero, ovviamente diverso da quello che hai postato.

Il problema, anche in questo caso, mi sembra quello solito, eterno: sai che cosa è un try/except/finally? Sai che cosa è un ciclo for? Hai idea di che cosa fanno quelle due query?
La sensazione è che tu stia adattando a martellate del codice che hai copincollato in giro, senza avere un'idea precisa di quello che stai facendo. Il consiglio è il solito, eterno: se vuoi imparare Python lascia perdere i database per annetto, comprati un buon libro (il Lutz è sempre un consiglio) e seguilo passo-passo.

Offline PyPeppe

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
Re:connesione db esterno con python
« Risposta #2 il: Aprile 28, 2020, 14:24 »
Giusto RicPol :ok: