[résolu] petit script en python

petit script en python [résolu] - Python - Programmation

Marsh Posté le 29-10-2008 à 06:08:08    

Bonjour,
c'est ma première ligne de code à écrire en Python  il faut que je contrôle si deux variables existent dans deux champs d'une base de données, et retourner 'oui' ou 'non' dans un fichier texte..  
 
(edit)


Message édité par pierreafeu_ le 09-11-2008 à 18:31:55
Reply

Marsh Posté le 29-10-2008 à 06:08:08   

Reply

Marsh Posté le 29-10-2008 à 13:16:36    

Je crois qu'il y a comme des bugs dans ton interface chaise/clavier, parce que les deux premiers blocs de code sont vides et le 3e il y a comme des trous dedans.

 

Evite d'utiliser le bloc BBCode [ cpp ] aussi, utilise [ code=python ], ça permet d'avoir une coloration syntaxique correcte:

 
Code :
  1. from fields import Field, FileField
  2. from widgets import Media, media_property, TextInput, Textarea
  3. from util import flatatt, ErrorDict, ErrorList, ValidationError
  4. __all__ = ('BaseForm', 'Form')
  5. NON_FIELD_ERRORS = '__all__'
  6. def pretty_name(name):
  7.     "Converts 'first_name' to 'First name'"
  8.     name = name[0].upper() + name[1:]
  9.     return name.replace('_', ' ')


versus

Code :
  1. from fields import Field, FileField
  2. from widgets import Media, media_property, TextInput, Textarea
  3. from util import flatatt, ErrorDict, ErrorList, ValidationError
  4.  
  5. __all__ = ('BaseForm', 'Form')
  6.  
  7. NON_FIELD_ERRORS = '__all__'
  8.  
  9. def pretty_name(name):
  10.    "Converts 'first_name' to 'First name'"
  11.    name = name[0].upper() + name[1:]
  12.    return name.replace('_', ' ')


Message édité par masklinn le 29-10-2008 à 13:17:03

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-10-2008 à 18:05:18    

J'ajoute: le XML, c'est pas du texte, ça se génère pas à la main. Python a plusieurs packages de parsing et génération de XML (tout spécialement ElementTree dans Python 2.5), prière de les utiliser.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-10-2008 à 11:53:13    

En fait, je récapitule et j'en profite pour éditer mon premier message.
Je souhaite dissocier la connexion des comptes utilisateurs de la BDD de ceux des utilisateurs d'une application.
Pour ce faire, je crée une table utilisateurs qui contient à l'avance un nom d'utilisateur ainsi qu'un mot de passe.
Je tente d'effectuer une vérification et de savoir si le compte utilisateur existe bien dans la table utilisateurs
 
Voici comment je démarre
 je me connecte à ma base :
 

Code :
  1. def execute(self):
  2.  
  3.     try:
  4.               conn = psycopg2.connect("dbname='MaBase' user='MonUser' host='localhost' password='******'" );
  5.       except:
  6.               return "I am unable to connect to the database !"
  7.  
  8.     cur = conn.cursor()


 
 
Et là je souhaite controler le nom et le mot de passe de l'utilisateur, en récupérant un fichier xml qui me précise 'oui' ou 'non' en fonction du résultat de la requête sur la table utilisateur..
 
j'ai un peu de mal à m'exprimer clairement car je découvre sans aucune notion en python et donc chaque ligne me parait être une grosse erreur potentielle et la sortie en xml assez ardue..
 
Merci


Message édité par pierreafeu_ le 01-11-2008 à 20:04:09
Reply

Marsh Posté le 30-10-2008 à 12:01:49    

pas de "=python" dans la fermeture, c'est uniquement un argument à l'ouverture, utiliser juste [/code] à la fin.

 

(il y a un bouton d'aperçu sur le forum pour s'assurer que le post est correctement formatté avant de le poster)


Message édité par masklinn le 30-10-2008 à 12:02:30

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-10-2008 à 12:07:35    

c'est effectivement plus clair !
peux tu aussi m'aider sur le fond ?

Reply

Marsh Posté le 30-10-2008 à 12:35:48    

J'ai du mal à voir pourquoi tu veux passer par un fichier XML externe si ton but est de simplement checker que ton utilisateur existe, mais bon.

 

Pour faire la query, cf DB API 2.0 tu peux utiliser cur.execute (puisque tu n'as qu'une requête à faire), puis cur.fetchone() pour regarder ton résultat.

 

Après, il faut simplement sortir le bon SQL, genre un truc du style:

Code :
  1. cur.execute('SELECT login FROM users WHERE login=? AND password=?', [user_login, user_password])
  2. if c.fetchone():
  3.    # the user was found
  4. else:
  5.    # c.fetchone() returned None, indicating the user wasn't found
  6.    # (either because the username doesn't exist or because de password is incorrect
 

Pour la génération de XML, avec Python 2.5 et ElementTree, la doc est relativement correcte. Si tu as une liste de (username, exists), ça peut donner un truc du style:

Code :
  1. from xml.etree import ElementTree as ET
  2.  
  3. users = [('bob', True), ('bob2', False), ('bob3', True)]
  4.  
  5. root = ET.Element('users')
  6. for user, exists in users:
  7.    ET.SubElement(root, 'user', name=user, exists=('true' if exists else 'false'))
  8.  
  9. tree = ET.ElementTree(root)
  10. tree.write('out.xml', 'utf-8')
 

Après, je suggérerais quand même d'apprendre le python, ça pourrait être une bonne idée. le Python Tutorial est pas mal pour commencer, et derrière tu peux enchaîner sur Dive Into Python, un bouquin gratuit assez bien monté.


Message édité par masklinn le 30-10-2008 à 12:36:36

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed