[RESOLU] Valeurs ne change pas [MySQLdb / Python]  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
EVOTk

[RESOLU] Valeurs ne change pas [MySQLdb / Python]

Message par EVOTk » ven. 9 janv. 2015 18:59

Bonjour,

j'ai un code qui me cause des soucis !
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="root", # your username
passwd="*******", # your password
db="chaupi") # name of the data base


def verifconfig():
global tempjour
global tempnuit
global tempnuitinf
global tempnuitsup
global tempjourinf
global tempjoursup
global delta
global forcage

cur = db.cursor()
cur.execute("SELECT temp_jour, temp_nuit, delta, forcage FROM config WHERE ID='1'")
config = cur.fetchone()

tempjour = float(config[0])
tempnuit = float(config[1])
delta = float(config[2])
forcage = config[3]

db.close()

while True:
verifconfig()
print forcage

time.sleep(10)
Quand jexecute ceci, j'ai le message suivant :
Traceback (most recent call last):
File "testbombesql.py", line 132, in <module>
verifconfig()
File "testbombesql.py", line 116, in verifconfig
cur.execute("SELECT temp_jour, temp_nuit, delta, forcage FROM config WHERE ID='1'")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 155, in execute
charset = db.character_set_name()
_mysql_exceptions.InterfaceError: (0, '')
j'ai fouillé sur internet et certain parler de db.close(), je l'ai donc enlever pour voir et la plus d'erreur mais la valeur forcage qui est recuperée ne change jamais meme si elle est modifiée dans la base de donnée !

Une idée ?
Modifié en dernier par EVOTk le lun. 12 janv. 2015 16:51, modifié 1 fois.

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Valeurs ne change pas [MySQLdb / Python]

Message par Manfraid » lun. 12 janv. 2015 08:32

Salut,

essaye déjà d'ouvrir la connexion a ta base de donnée dans ta fonction, je ne pense pas que ce soit ça, mais on ne sait jamais
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

EVOTk

Re: Valeurs ne change pas [MySQLdb / Python]  [RESOLU]

Message par EVOTk » lun. 12 janv. 2015 16:51

Manfraid a écrit :Salut,

essaye déjà d'ouvrir la connexion a ta base de donnée dans ta fonction, je ne pense pas que ce soit ça, mais on ne sait jamais
Hey bah oui, c'est sa ! il va donc falloir que j'ouvre et ferme la connexion a chaque fois :/

J'ai vu qu'il etait possible de metre les info dans un fichier, dans se cas cela me semble judicieux !

Code : Tout sélectionner

db = MySQLdb.connect(read_default_file="~/.my.cnf")
http://fr.wikibooks.org/wiki/Programmat ... nn%C3%A9es

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: [RESOLU] Valeurs ne change pas [MySQLdb / Python]

Message par Manfraid » mar. 13 janv. 2015 05:49

je ne savais même pas que c'était possible de mettre la config dans un fichier. et pour la connexion c'est normal, les site web en fond autant vers le propre base de donnée chaque page ouvre une connexion puis la ferme et surtout multiplier par le nombre de visiteurs :)
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [RESOLU] Valeurs ne change pas [MySQLdb / Python]

Message par vague nerd » mar. 13 janv. 2015 09:52

Bonjour.
les site web en fond autant vers le propre base de donnée
Par forcément. Cela dépend de l'architecture applicative retenue. Si l'accès base de donnée est crucial, il n'est pas rare qu'un processus (ou plutôt un pool de processus) soit tout le temps connecté à une base, en keep alive. Les processus clients s'adressent alors au processus dédié base de donnée (qui peut alors avoir recours à des caches, prioriser les accès à la base, ..., et surtout ne pas la surcharger).

Un site de vente en ligne à fort trafic ne peut tout simplement pas se permettre d'ouvrir une connexion à la base de donnée pour chaque client ! Ils vont même jusqu’à avoir recours à des bases intermédiaires (et le site dit "ok" au client bien avant d'avoir enregistrer la commande dans le système central).
surtout multiplier par le nombre de visiteurs
Je n'ai pas compris le rapport...

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: [RESOLU] Valeurs ne change pas [MySQLdb / Python]

Message par Manfraid » mar. 13 janv. 2015 10:15

c'est vrai mais je ne parlais pas de site à très fort trafic, et ne cherche pas il n'y a pas de rapport, juste mal réveillé lol
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [RESOLU] Valeurs ne change pas [MySQLdb / Python]

Message par vague nerd » mar. 13 janv. 2015 10:18

juste mal réveillé lol
:D
Cordialement,

Vague Nerd

Répondre

Retourner vers « Python »