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 kr1p . É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 gaaaaaAab . Évalué à 2.
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.
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 fab . É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).
[^] # Re: Read the **** doc !
Posté par fab . Évalué à 1.
Toujours dans la doc basique :
https://docs.cherrypy.org/en/latest/basics.html#static-content-serving
avec la configuration dans un fichier de conf
# merci
Posté par kr1p . É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.