Aller au contenu

Cr


Beber75

Messages recommandés

Bonjour

Débutant en Python et ne connaissant rien en Unix, Apache etc... j'essaie tout de même de créer une page Web par un script Python (monscript.py) . J'ai suivi scrupuleusement les conseil du wiki en commencant mon script par

#! /usr/local/bin/python
print ("Content-Type: text/html")

print( ("""
description de la page en HTML

""")

Quand ce script est appelé via la page index.html par : <FORM ACTION="http://mon server/monscript.py" METHOD="post">

cela affiche simplement mon script comme si j'étais sous l'editeur .Il semble que çà ne déclenche pas l'interprétation python

Par contre quand je le lance via python directement ( par exemple via Web console en tapant : python monscript.py , le script s'exécute correctement ...

Encore plus étonnant , quand je remplace monscript.py par cgi.py ( copié de la bibliothèque) le serveur m'affiche une erreur 404 ( Désolé le serveur synology etc...)

Une âme charitable aurait-elle une piste ?

Bertrand


Lien vers le commentaire
Partager sur d’autres sites

C'est justement bien plus simple que de faire des print de headers et code HTML dans un CGI. Il n'y a qu'a voir le code de la page d'accueil.
Tu peux regarder le tutoriel qui détaille une application avec login/logout et une base de donnée derrière http://flask.pocoo.org/docs/tutorial/introduction/ Il y a également plein d'autre tutoriels sur le net sur flask.
Si je comprends bien ton besoin tu peux zapper la partie avec la base de donnée et te concentrer sur quelques requêtes GET qui effectueraient des actions, un peu comme sur la page d'accueil.

Seulement, tu ne pourras pas installer Flask avec le Python du SPK Synology, pour cela il faut le SPK SynoCommunity et quelques commandes pour te créer un environnement isolé Python.

Par exemple si tu comptes développer ton application dans /volume1/appli/:

/usr/local/python/bin/virtualenv --system-site-package /volume1/appli/env  # Pour créer un environement virtuel isolé
/volume1/appli/env/pip install flask  # Pour installer Flask

Dans tes fichiers tu peux commencer par le hashbang :

#!/volume1/appli/env/bin/python
Modifié par Diaoul
Lien vers le commentaire
Partager sur d’autres sites

Merci pour ces explications , c'est en effet une piste. Comme je ne pensais pas développer des pages très compliquées je me disais que la technique du "print python" suffisait .

En attendant je ne comprend toujours pas pourquoi mon script ne lance pas l'interprétation python ..:

Bertrand

Lien vers le commentaire
Partager sur d’autres sites

En attendant je ne comprend toujours pas pourquoi mon script ne lance pas l'interprétation python ..:

J'essaierai de changer le suffixe du script de ".py" en ".cgi"

ou bien ajouter la clause:

AddHandler cgi-script .py

à la conf apache

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

Bon , après une longue absence je reviens sur ce sujet avec la réponse . Cela peut éclairer les premiers pas de certains qui ne sont pas comme moi fortiche en python , apache , HTML et j'en passe .

Déjà il faut , comme indiqué dans un post précédent , paramétrer le fichier de config Apache (httpd-conf-user) pour que la ligne "AddHandler cgi-script " comporte bien l'extension .py .

Si ce n'est pas fait les fichiers ne sont pas considéres comme des scripts Python et la ligne #! /usr/local/bin/python du fichier n'est pas interprétée.

A chaque modif de la conf Apache ne pas oublier de relancer le serveur Apache pour qu'il prenne les modifs en compte : env - /usr/syno/etc/rc.d/S97apache-user.sh restart

Si en appelant le script on tombe sur la page Syno par défaut : Désolé etc... c'est qu'il y a un bug dans le script . Si ce bug n'a pas été décelé en le faisant tourner directement sous python , il faut aller regarder dans le log apache ( httpd-error-user.log) en ayant au préalable configuré correctement la conf Apache pour que ce fichier soit actif avec l'option ERROR .

Là on peut trouver l'erreur 13 : accès fichier interdit . C'est dû au fait que les permissions d'accès du fichier script sont insufisantes . Dans mon cas le script était UPLOADé d'un répertoire de mon PC où je développe en Python 3.3 via la webconsole et arrivait sur le volume du syno avec des permissions à zéro . Il faut alors faire un CHMOD 755 ( au départ , on affine après)

Après la plupart des erreurs dues au script sont décelées dans la log Apache ...

Voila voila ...

Modifié par Beber75
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.