Forum Programmation.python site internet et insertion image

Posté par  . Licence CC By‑SA.
Étiquettes :
2
25
mai
2020

Bonjour,
J'apprend le python depuis le confinement et j'en suis aux site internets avec cherrypy.
J'ai réussi à faire une page mais je butte sur les liens vers des fichiers ou des images.
je crée des objets et des methodes dans la structure de mon site en pur python qui sont ensuite répertoriés dans une arborescence (par exemple def liens(object): qui sera accessible dans /liens)
Je ne comprend pas bien la correspondance avec une structure classique d'un site en html où jai une arborescence sur disque dur de mes pages webs et des fichiers liés.
J'ai donc deux questions :
1.les arborescences des méthodes et objets accessibles par des liens de types a href=/liens ont elles des "équivalences" dans une structure de fichier sur un disque dur?
2.si je veux faire un lien vers un fichier image, dois je l'instancier comme un objet python ou est ce que je peux faire un lien vers une structure locale de fichiers?

merci
A+

  • # reponse dans un forum

    Posté par  . Évalué à 1.

    je viens de trouver ce lien qui explique un peu :
    https://www.developpez.net/forums/d1423058/autres-langages/python/reseau-web/afficher-image-cherrypy/

    en fait il faudrait importer le module os et définir quelques paramètres pour faire référence à des fichiers dans une arborescence.
    quelqu'un peut il m'expliquer l'intéret d'avoir recours à un module os ou non (en termes de sécurité, d'élégance, etc.)? l'alternative est elle seulement d'uploader les fichiers quelquepart et de mettre des liens en adressage absolu www.plateforme.org/lienverslefichier ?

    • [^] # Re: reponse dans un forum

      Posté par  . Évalué à 2.

      quelqu'un peut il m'expliquer l'intéret d'avoir recours à un module os ou non (en termes de sécurité, d'élégance, etc.)?

      en terme de sécurité, il n'a pas plus d'implication qu'utiliser n'importe quoi d'autre. C'est simplement le module qui permet de s'interfacer en Python avec les fonctions fournies en userspace à n'importe quel programme. L'aide de os précise qu'il fournit un accès à toutes les fonctions POSIX et à un ensemble de fonctions supplémentaires, principalement sur la manipulation des chemins.

      En terme d'élégance, le module os est, en python, la méthode préférée pour utiliser ces fonctions. Donc, à mon avis, chercher à contourner ce module serait inélégant.

      l'alternative est elle seulement d'uploader les fichiers quelquepart et de mettre des liens en adressage absolu www.plateforme.org/lienverslefichier

      Si tu veux avoir des fonctions qui interagissent avec l'os, tu pourrais re-écrire toi-même l'interfaçage en C avec les fonctions concernées. Mais ça reviendrait juste à dupliquer ce que le module os propose (et probablement en moins bien, parce que c'est difficile de lutter avec un module écrit et maintenu par un collectif depuis des années, ça n'a rien à voir avec ta compétence personnelle). C'est un bon exercice, mais d'un point de vue sécurité, ça ne changera rien je pense.

  • # Read the **** doc !

    Posté par  . Évalué à 1.

    Est-ce que le tutoriel n'est pas assez explicite ?

    Il explique bien comment "mapper" une arborescence du serveur de fichier vers une arborescence apparente sur le site, et comment accéder aux fichiers. A priori, pas besoin du module os, ni de charger l'image comment objet python (avec PIL par ex).

  • # merci

    Posté par  . Évalué à 1.

    merci pour la doc, je n'avais que mon pdf d'apprentissage en libre pour l'instant.
    si je comprend bien https://docs.cherrypy.org/en/latest/basics.html#serving-a-single-file
    on peut indexer des fichiers dans le .conf qui permettent de faire des liens vers ces fichiers sans passer par os.
    si je comprend bien le chemin de ces fichiers correspond bien à l'arborescence sur le serveur web et non à l'arborescence des pages instanciées pour laquelle il n'y a pas de correspondance avec une arborescence de fichiers sur le serveur?

    Par ailleurs, savez vous quel hébergeur héberge facilement un site en python pour du très basique (site perso sans fonctionnalités avancée)?

    merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.