Afficher contenue d'un fichier
Résolu/Fermé
A voir également:
- Afficher contenue d'un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
3 réponses
Bonsoir.
Une url s'écrit avec des slashs et non des backslashs.
Et lorsque tu dis que tu n'y parviens pas, tu n'as même pas une erreur 404 ?
Quel serveur ?
Une url s'écrit avec des slashs et non des backslashs.
Et lorsque tu dis que tu n'y parviens pas, tu n'as même pas une erreur 404 ?
Quel serveur ?
Utilisateur anonyme
4 oct. 2018 à 12:25
4 oct. 2018 à 12:25
pour être plus precis voici mon code complet:
j'essaie d'utiliser les conteneurs Docker, j'ai donc un docker-compose et une app.py que voici :
ce code me crée une page web en 0.0.0.0:5000 et si j'ajoute a l'url ceci : 0.0.0.0:5000/about.json
je desire afficher ce que contient mon fichier about.json contenue a la racine de mon projet.
et c'est ici que ca bug ...
j'essaie d'utiliser les conteneurs Docker, j'ai donc un docker-compose et une app.py que voici :
from flask import Flask from redis import Redis, RedisError import os import socket import json # Connect to Redis redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2) app = Flask(__name__) @app.route("/") def hello(): try: visits = redis.incr("counter") except RedisError: visits = "<i>cannot connect to Redis, counter disabled</i>" html = "<h3>Hello {name}!</h3>" \ "<b>Hostname:</b> {hostname}<br/>" \ "<b>Visits:</b> {visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) @app.route("/about.json") def about(): with open('about.json') as json_data: data_dict = json.load(json_data) txt = json.dumps(data_dict) html = "{txt}" return html.format(txt=txt) if __name__ == "__main__": app.run(host='0.0.0.0', port=5000)
ce code me crée une page web en 0.0.0.0:5000 et si j'ajoute a l'url ceci : 0.0.0.0:5000/about.json
je desire afficher ce que contient mon fichier about.json contenue a la racine de mon projet.
et c'est ici que ca bug ...
Salut,
Donc, oui, tu as bien un serveur local sur le port 5000 ^^
J'ai testé ton script et cela fonctionne parfaitement.
http://0.0.0.0:5000/about.json affiche bien chez moi le contenu du fichier, bon l'affichage est pourri :D, autant filer directement le fichier json brut au navigateur puisqu'il peut l'afficher bien formaté (tout du moins firefox)
Donc je soupçonne que le chemin vers ton fichier json n'est pas correct.
Et quand tu dis que ça bug, il se passe quoi au juste ? Il faut être plus précis.
Donc, oui, tu as bien un serveur local sur le port 5000 ^^
J'ai testé ton script et cela fonctionne parfaitement.
http://0.0.0.0:5000/about.json affiche bien chez moi le contenu du fichier, bon l'affichage est pourri :D, autant filer directement le fichier json brut au navigateur puisqu'il peut l'afficher bien formaté (tout du moins firefox)
Donc je soupçonne que le chemin vers ton fichier json n'est pas correct.
Et quand tu dis que ça bug, il se passe quoi au juste ? Il faut être plus précis.
quand je réclame mon fichier j'obtient ca sur ma page web : Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
je me suis pas trompé dans le chemin du fichier, c'est agréable de savoir que ca fonctionne chez toi mais du coup je suis deg que ce soi pas la meme de mon coté.
comment ferais tu pour directement fournir le fichier au navigateur ? tu peut me faire un petit exemple ?
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
je me suis pas trompé dans le chemin du fichier, c'est agréable de savoir que ca fonctionne chez toi mais du coup je suis deg que ce soi pas la meme de mon coté.
comment ferais tu pour directement fournir le fichier au navigateur ? tu peut me faire un petit exemple ?
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
4 oct. 2018 à 13:17
4 oct. 2018 à 13:17
'lut,
ton fichier
De plus, tu l'interprètes pour le re-sortir tel quel, puis tu utilises
Essaie tout simplement:
ton fichier
jsonest invalide/corrompu.
De plus, tu l'interprètes pour le re-sortir tel quel, puis tu utilises
.format()pour rien.
Essaie tout simplement:
@app.route("/about.json") def about(): with open('about.json', 'rb') as json: return Response(json.read(), mimetype='application/json')
Bah oui, tu as deviné, c'est bien ton fichier json le problème, d'ailleurs pour t'en assurer, ouvre le avec ton navigateur sans passer par ton serveur.
Avec un fichier syntaxiquement incorrect, firefox le signale.
Par exemple.
Avec un fichier syntaxiquement incorrect, firefox le signale.
Par exemple.
SyntaxError: JSON.parse: expected ',' or ']' after array element at line 38 column 1 of the JSON data
il manque une virgule dans mon fichier.json ....
mon affichage ce fait correctement meme si avec ma fonction c'est effectivement pas terrible du tout comme le disait jortu.
je ne parvient pas a tester la tienne j'ai cette erreur :
as tu un import ou quelque chose d'autre a ajouter ? je débute totalement désolé si c'est evident....
mon affichage ce fait correctement meme si avec ma fonction c'est effectivement pas terrible du tout comme le disait jortu.
je ne parvient pas a tester la tienne j'ai cette erreur :
NameError: name 'Response' is not defined
as tu un import ou quelque chose d'autre a ajouter ? je débute totalement désolé si c'est evident....
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
Utilisateur anonyme
4 oct. 2018 à 19:27
4 oct. 2018 à 19:27
from flask import Response
4 oct. 2018 à 07:24
Je reçois une erreur interne sur ma page.
Elle n'est pas hébergé sur un serveur mais en local.
Merci de ton aide
4 oct. 2018 à 09:26
Et puis je ne comprends pas non plus le rapport avec python, tu devrais préciser bien plus de choses, car pour le moment, ton problème est vague.