Question que j'ai vu plusieurs fois mais je n'ai pas trouvé de réponse.
J'ai un serveur fait en python :
#coding:utf-8
import http.server
port = 80
address = ("", port)
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = [""]
httpd = server (address, handler)
print(f"Serveur démaré sur le port : {port}")
httpd.serve_forever()
Il fonctionne sans soucis (Python 3 sous Ubuntu). Il détecte sans soucis une page index.html mis au même niveau d'arborescence.
Mais je veux avoir mon site en python et donc afficher une page index.py :
#! /usr/bin/python3.7
#coding:utf-8
import cgi
print("Content-type: text/html; charset=utf-8\n")
html = """<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>page d'index en python </title>
</head>
<body>
<p>Ceci est la page d'accueil en python.</p>
</body>
"""
print(html)
Il appelle bien la page quand je demande 127.0.0.1/index.py, il ne bloque pas (pas de problème de serveur arrêté ou d'autorisation) mais il affiche le contenu du fichier, sans l'exécuter.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Fred, peux-tu me dire laquelle ? Quand je passe le code html au validator il me dit que c'est ok.
Thelinekioubeur, je suis surpris car le code est celui trouvé dans certaines formations qui affichent la page sans soucis. Et si je mets uniquement localhost, cela ne fonctionne pas non plus.
Mais je vais regarder du côté de bottle, mais pour apprendre je voulais éviter les frameworks.
Tu n'as qu'un code HTML, c'est pas dur, et pas besoin de passer au validateur, et en plus je précise, que c'est la fermeture, alors quoi dire de plus
EDIT: Regarde peut-être le code que tu présentes ici et pas celui que tu as dans ton éditeur. En tout cas c'est bien visible et logique.
- Edité par fred1599 30 mars 2020 à 19:18:11
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
J'ai fermé la balise <html lang="fr"> en ajoutant un </html> juste avant le """ si c'est ce dont tu voulais parler. Sans succès.
J'ai fais tourner le code par un python3 index.py dans le terminal pour vérifier et j'ai bien ce que je veux. J'ai poussé le vice à copier coller ce résultat dans un fichier index2.html et le navigateur me donne bien le résultat demandé : "Ceci est la page d'accueil en python.".
Par contre quand c'est dans un fichier en .py, rien du tout, il me sort le code du fichier, même pas le code source en html, tout le code contenu dans le fichier, mais ne l’interprète pas.
@Vince2020 Bonjour, je viens de sortir des spams votre dernier message, si cela arrive encore vous pouvez poster dans ce sujet Si votre message est considéré comme spam
Mon OS est Ubuntu, en tête de la page à afficher en HTML, ici index.py, je dois ajouter la place de python 3 sur l'OS sinon il interprète avec python 2 et donc bug.
Concrètement :
Dans la console trouver Python 3 avec
whereis python3
Chez moi c'est /usr/bin/python 3.7. Donc je rajoute en toute 1ère ligne du fichier :
#!/usr/bin/python3.7
Et voilà !!!
- Edité par Vince2020 24 avril 2020 à 21:08:34
acceder à une page index.py dans un navigateur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)