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 :

PROBLEME D'INDICE EN PYTHON 2


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 51
    Par défaut PROBLEME D'INDICE EN PYTHON 2
    j'essaye de generer une page HTML avec du Python.
    il s'agit d'un script qui m'affiche l'arborescence de mes fichiers sur une page html avec un systeme d'indice (racine est le niveau 0, quand je rentre à 'linterieur c'est le niveau 1 ...)
    je voudrais faire disparaitre le niveau 0 par exemple de mon affichage, mon probleme c'est que le bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			  document.getElementById("""+str(niveau_arbo)+""").style.display = "none"
    s'execute juste 1 fois meme s'il est dans ma boucle principale ?


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #!/usr/bin/python
    import os, sys, re
     
    print "Content-type: text/html"
    print 
    print """<html>
             <head>
             <link rel="stylesheet" href="http://localhost/~anis/acceuil_explorateur.css" />
             <body>
            
            
             """
     
     
     
     
    niveau_arbo = 1
     
    def parcours(repertoire):
    	global niveau_arbo
     
     
    	liste = os.listdir(repertoire)
     
    	for  element in liste :
    		# on s'interesse qu'aux dossiers non caches
    		resultat = re.search("^[.](.+)",element)
     
    		if not resultat :
    		  if os.path.isdir(repertoire+"/"+element):
     
     
    			print str(niveau_arbo)
    			print """
                            <div id="""+str(niveau_arbo)+""" class = 'dossier'   >
                             
                              <div class='plus' >
                                  <img src=http://localhost/~anis/plus.gif width='15px' height='15px' affiche  />
                              </div>
                            
                              <div class='moins'>
                                  <img src=http://localhost/~anis/moins.png  width='15px' height='15px'  />
                              </div>
                            
                              <img src=http://localhost/~anis/icone_dossier.png  width='40px' height='40px' />
                              <a href = http://localhost/~anis/cgi-bin/contenu.cgi?rep=""" + repertoire + """/""" +element +""" target = "iframe_droite" >"""+ element +"""
                              </a>
                            
                            </div>
                            """
    			print """
                            <script>
                              document.getElementById("""+str(niveau_arbo)+""").style.display = "none"
                            </script>
                            """
     
     
    			print "<ul>"
    			niveau_arbo = niveau_arbo + 1
    			parcours(repertoire+"/"+element)
     
    			print "</ul>"
     
    	niveau_arbo = niveau_arbo - 1
     
    	"""
                            
    print "</ul>"
     
    parcours("/home/anis/public_html")
     
     
    print """
     
     
    </body>
    </head>
    </html>
    """

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut un possible
    Bonjour, je me suis permis de refactoriser ton code. j'ai utilisé deux ou trois astuces pour l'affichage des éléments, comme séparer entierement le CSS du HTML, utiliser des '%s' %(variable) pour faire joli.

    il reste à faire le CSS, et à prendre en compte si tu veux ajouter les fichiers du dossier donné.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #!/usr/bin/python
    import os, sys, re
    host = 'http://localhost/'
     
    def tree(dir):  
    	data = ''
    	for  e in os.listdir(dir) :
    		# on s'interesse qu'aux dossiers non caches
    		if not re.search("^[.](.+)",e) :
    			path = dir+'/'+e
    			if os.path.isdir(path):
     
    				data += '<div class="plus" ><img src='+ host +'~anis/plus.gif affiche /></div>'
    				data += '<div class="moins"><img src='+ host +'~anis/moins.png /></div>'
    				data += '<img src='+ host +'~anis/icone_dossier.png class="folder" />'
    				data += '<a href="%s~anis/cgi-bin/contenu.cgi?rep=%s/%starget="iframe_droite" >%s</a></div>' % (host,dir,e,e)
     
    				data += '<ul>'
    				data += tree(path) 
    				data += '</ul>'
    	return data
     
    #style exemple should always be decoupled of the html	
    style = """
    <style>
    .moins img{width:15px;height:15px;} 
    .plus img{width:15px;height:15px;}
    </style> 
    """
     
     
    css = '<link rel="stylesheet" href="'+ host +'~anis/acceuil_explorateur.css" />'
    html = '<html><head>'+ style + css +'<body>' 
    html += tree('.')
    html += '</body></head></html>'
     
    print html
    Concernant la logique de ton programme, je t'invite à essayer le très populaire et excellent framework javascript : JQuery.
    pour l'opération que tu souhaites faire il faudrait avoir un code à peu près comme ca :
    (code non testé)

    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
     
    //on execute le système jQuery aprèrs que le document soit chargé
    $(document).ready(
    //on execute une fonction à ce moment là et on peut ajouter tout plein de gadgets à notre document HTML
      function(){
        alert('jQuery est correctement charge');
        //on cache tous les fils de notre liste. 
        $('li').hide();
        $('li').click(
          function()
            //il se passe quelque chose quand on clique sur un li
            $('body').append($(this).html());
        );
      }
     
    );
    Il existe plein de choses autour de JQuery toutes faites, mais la je m'égare, on est sur un forum python
    cela dit, tu peux jeter un coup d’œil ici pour ce que tu souhaites faire ou pour la version officielle.

    Enjoy !

Discussions similaires

  1. probleme entre geany et python
    Par jp73001 dans le forum EDI/RAD
    Réponses: 6
    Dernier message: 24/05/2013, 13h21
  2. probleme d'execution cgi python
    Par jumanji34 dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 13/12/2008, 15h40
  3. Probleme d'installation de python sous debian
    Par ToMs dans le forum Debian
    Réponses: 3
    Dernier message: 09/08/2006, 10h57
  4. Réponses: 4
    Dernier message: 10/02/2006, 13h49
  5. probleme apache+module python sous windows
    Par gaussprodada dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 02/11/2004, 21h09

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