IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Mémoriser des entrées utilisateurs (IP et Port) dans des "constantes" (restent après reboot du programme)


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2015
    Messages : 50
    Points : 25
    Points
    25
    Par défaut Mémoriser des entrées utilisateurs (IP et Port) dans des "constantes" (restent après reboot du programme)
    Bonjour,

    Je crée un programme graphique qui communique avec un serveur.
    J'aimerais stocker l'adresse ip et le port, qui sont entrés par l'utilisateur, dans des variables avec une valeur par défaut si l'utilisateur n'entre rien.
    Les données entrées par l'utilisateur doivent remplacer les valeurs par défaut, que l'utilisateur ne doive pas les enter à chaque utilisation.

    Pour l'instant ce code fonctionne mais ne garde pas les entrées utilisateur en mémoire après le reboot.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    host = ""
    port = 0
     
    def appelServeurBxl(self): #passage des arguments qui permettent au client de se connecter au serveur et télécharger les fichiers
        global host, port, dossier
        if host == "":
            host = "192.168.1.2" #valeur par défaut
        if port == 0:
            port = 1111 #valeur par défaut
        telechargementFichier(host,port, dossier) #connexion au serveur et téléchargement des fichiers
     
    def buttonValid (self): #bouton qui valide les entrées IP et port de l'utilisateur
        global host, port
        hostbx = self.ui.lineEditIPBxl.text()  #récupération de l'adrs ip entrée par l'utilisateur
        host =hostbx
        portbx = self.ui.lineEditPortBxl.text()#récupération du port entré par l'utilisateur
        port = int(portbx)

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il y a des tas de solutions pour faire ça. Voilà ce que je fais assez souvent:

    Principe: les données de l'utilisateur sont conservées dans un fichier qui se trouve dans son "home". De ce fait, si un autre utilisateur ouvre une cession sur le même PC, il pourra avoir d'autres données.

    Le "home" utilisateur (son répertoire perso) est donné par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rephome = os.path.expanduser('~')
    Cette façon de trouver le répertoire utilisateur est multiplateforme. La réponse sous Windows pourra être "C:\Users\utilisateur" et sous Linux "/home/utilisateur"

    Ensuite, les données sont dans un fichier de type "ini" qu'on peut fabriquer avec le module Python "configparser" (https://docs.python.org/3/library/co...e-configparser).

    Il suffit lors de l'exécution du programme de lire ce fichier s'il existe, et si oui de prendre en compte les données utilisateur au lieu des données par défaut. A la fin du programme, il suffira d'enregistrer (automatiquement ou sur demande) les données courantes dans ce fichier en le créant s'il n'existe pas encore.

    Sous Linux, ce genre de fichier est couramment un fichier caché, c'est à dire dont le nom est précédé par un point. Mais ce n'est pas indispensable et Windows n'aime pas beaucoup ça.

    Selon les cas, on peut soit n'avoir qu'un seul fichier dans le home utilisateur, soit avoir un répertoire dans lequel on peut mettre tout ce qu'on veut qui soit spécifique à la configuration utilisateur.

    Au lieu d'un fichier de type "ini" on peut avoir d'autres solutions de stockage: shelve, pickle et pourquoi pas une base de données sqlite3. Le grand avantage des fichiers de type "ini" est qu'on peut les modifier avec un simple éditeur de texte en dehors du programme.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2015
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Super, ça fonctionne bien et "configparser" est exactement ce dont j'ai besoin!!
    Merci.

Discussions similaires

  1. Importer des propriétés dans des controles utilisateurs
    Par dragondumond dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/04/2013, 13h57
  2. Réponses: 7
    Dernier message: 12/08/2012, 11h42
  3. Réponses: 45
    Dernier message: 14/02/2008, 15h41
  4. Gestion des entrées utilisateur
    Par piotrr dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/09/2007, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo