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 :

[Mod_python] listage de fichiers


Sujet :

Réseau/Web Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut [Mod_python] listage de fichiers
    Bonjour,

    Débutant en python, je dois réaliser une applie avec en utilisatn mod_python et j'ai des problèmes pour "mélanger le code"...



    Voici le code en question :


    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
    #!/usr/bib/env python
    from mod_python import apache
    import shutil, os, sys, glob
     
     
    def listeJob(motif, chemin_rech, sep_chemin = os.pathsep):
    		for chemin in chemin_rech.split(sep_chemin):
    			for corresp in glob.glob(os.path.join(chemin, motif)):
    				yield corresp
     
    def index(req):
     
     
    	req.content_type = "text/html; charset=utf-8"
    	print listeJob('*.py',os.environ['PATH']).next()
     
    	return """<html>
     
    toto
     
     
     
    </html>
    """

    L'idée serai de lister le contenu d'un répertoire et de l'afficher dans la page html quand la fonction www.site.fr/script.py/ est appelée.Cela est il possible ?
    car je tourne en rond et mon ami google n'est pas très bavard sur ce genre de problème...

    Merci par avance pour votre aide.
    Bonne fin de journée

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut
    Bonjour,

    J'ai trouvé une solution pas très belle en terme de code mais qui fonctionne
    si il y d'autres solutions ..merci par avance:

    def index(req):


    req.content_type = "text/html; charset=utf-8"
    req.write(commands.getoutput('ls /var/www/test/*.py))

    return """<html>

    toto



    </html>
    """

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    mod_python est une "couche" permetant de faire tourner python dans apache rien de plus ou presque ...

    je te conseil de prendre un framework de developpement, un poid lourd comme django ou ptetre plus leger come karigel et la tu fera du vrai dev oueb et tu te posera pas des question de faire des request.write come on faisait y a 10 ans (et que certains font surement encore en php ... )

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Personnellement j'utilise le mode publisher de mod_python et ça n'est pas un outil de dinosaure

    C'est juste que c'est une couche plus bas niveau que Django et autre frameworks.

    On récupère la liste des fichiers en extension ".py" dans /var/www/test et on les met en format html (basique ici)

    En mode publisher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import os
     
    def index(req):
       req.content_type = "text/html; charset=utf-8"
       return "<html>\n<p>\n%s\n</p>\n</html>\n" % ("<br/>\n".join([x for x in os.listdir("/var/www/test/") if x.endswith(".py")]))

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    en tant que developpeur Web proffessionnel je te le dis clairement ...

    Faire du print de balise html c'est totalement dépassé imaintenable, lourd a ecrir a lire ...
    Le minimum c'est purement un moteur de template et encore aujourd hui on se dirige de plus en plus vers des moteurs de control

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Oui je suis d'accord pour une production rapide avec template

    Mais bon sortir l'artillerie lourde pour deux pauvres pages ... (c'est un peu le défaut des développeurs web de maintenant).

    Après mod_python est une base, on peut greffer un moteur de template par dessus au besoin. Mais là c'est complétement inutile.

    Ne pas oublier le mod psp de mod_python aussi qui imbrique python dans une page (x)html ou autre (wml, ...).

  7. #7
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    pour moi PSP c'est revenir en arriere ...

    Exemple avec IronPython + asp.net (moteur de controles)

    Default.aspx (code entierement généré par un clic sur nouveau fichier et un drag&drop d'un composant datalist) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ Page Language="IronPython" CodeFile="Default.aspx.py"%>
    <asp:DataList Id="datalist1" runat="server"/>
    Default.aspx.py (def Page_Load(sender, events): autogénéré):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def Page_Load(sender, events):
        datalist1.DataSource = os.listdir("/var/www/test/")
        datalist1.DataBind()
    Franchement je ne vois pas en quoi c'est sortir l'artilerie lourde, c'est plus conci et vraiment tres facil a ecrire...

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Je trouve pas ça très intuitif et pas très portable (asp.net / iron python) mais bon ça n'engage que moi et je n'ai pas envie de polémiquer sur les choix des uns et des autres (je le fais déjà assez au niveau pro)

  9. #9
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    pas tres intuitif ... hummm à la rigueur si tu as deja fait du print classique dans d autre language ok mais je pense qu'expliquer les concept d'html est plus compliqué que de dir a quelque "regarde ta liste tu lui dis que la source et ca et tu lui dis de l afficher" ... bon sans allé plus loin on va dire que chacun aura son opinion la dessus (le mien c vivement le html creve c tout pourri )

    sinon pour la portabilité je ne suis pas d'accord ... un apache avec modpython c pas hyper répendu...
    Moi je peux le faire tourner dans un IIS classique sous windows, et même sous linux avec un apache + mod_mono (faut arreter de penser que .net implique microsoft)

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut
    Bonjour,

    Merci pour vos nombreuses réponse sur ma question, vous m'avez ouvert de nouveaux point de recherches .. maintenant le débutant que je suis va checker toutes ces bonnes idées.

    Encore merci.
    Cordialement,

    François

Discussions similaires

  1. Listage des fichiers d'un dossier
    Par Flow_75 dans le forum C++Builder
    Réponses: 7
    Dernier message: 18/12/2006, 11h20
  2. aide pour listage de fichier
    Par quentingsc dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/12/2006, 13h00
  3. Réponses: 1
    Dernier message: 30/11/2006, 11h01
  4. [Système] Probleme de listage de fichier
    Par Phenomenium dans le forum Langage
    Réponses: 2
    Dernier message: 22/09/2006, 12h37
  5. listage de fichiers
    Par GTJuanpablo dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 13h16

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