Bonjour à tous, je suis nouveau sur Developpez, ainsi que dans la programmation Python.
Je souhaiterais développer une application web avec Python et CGI, seulement voila, je suis complètement perdu !
Après 2 jours de recherche, je fini par vous exposer mon problème :
(je rappelle que je débute, donc c'est questions vous paraissent sûrement évidente, mais pas pour moi !! )
- Je n'arrive tout simplement pas à exécuter un script Python placé dans un dossier cgi-bin (hébergé sous OVH)(Internal Server Error), je regarde donc dans l'aide d'OVH, Google, ... et tout ce que je trouve, c'est qu'il faut mettre les chmod 755 au dossier cgi-bin, ce que je fait, mais rien n'y fait
J'ai essayé pleins de bidules (mod_python, ...) qui n'ont sûrement rien avoir, mais j'ai quand même essayé.
Finalement, je vous demande donc de l'aide pour débuter avec le CGI et Python
Voici les scripts : (scripts venant de la doc .pdf : Apprendre à Programmer avec Python, trouvé sur ce site même)
index.html
input_query.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <HTML> <HEAD><TITLE>Exercice avec Python</TITLE></HEAD> <BODY> <DIV ALIGN="center"> <IMG SRC="penguin.gif"> <H2>Page Web interactive</H2> <P>Cette page est associée à un script Python</P> <FORM ACTION="../../cgi-bin/elyoo/input_query.py" METHOD="post"> <INPUT TYPE="submit" NAME="send" VALUE="Exécuter le script"> </FORM> </DIV></BODY></HTML>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #! /usr/bin/python import cgi print "Content-type: text/html\n" print """ <H3><FONT COLOR="Royal blue"> Page web produite par un script Python </FONT></H3> <FORM ACTION="print_result.py" METHOD="POST"> <P>Veuillez entrer votre nom dans le champ ci-dessous, s.v.p. :</P> <P><INPUT NAME="visiteur" SIZE=20 MAXLENGTH=20 TYPE="text"></P> <P>Veuillez également me fournir une phrase quelconque :</P> <TEXTAREA NAME="phrase" ROWS=2 COLS=50>Mississippi</TEXTAREA> <P>J'utiliserai cette phrase pour établir un histogramme.</P> <INPUT TYPE="submit" NAME="send" VALUE="Action"> </FORM> """
Question :
Content-type: text/html\n et Content-type: text/html -> à la même fonction?
print_result.py :
Quand je regarde le log avec easyPHP, il me donne l'erreur : couldn't spawn child process: d:/site internet/easyphp1-8/cgi-bin/elyoo/input_query.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #! /usr/bin/python # Traitement des données transmises par un formulaire HTML import cgi # Module d'interface avec le serveur web form = cgi.FieldStorage() # Réception de la requête utilisateur # il s'agit d'une sorte de dictionnaire if form.has_key("phrase"): # La clé n'existera pas si le champ text = form["phrase"].value # correspondant est resté vide else: text ="*** le champ phrase était vide ! ***" if form.has_key("visiteur"): # La clé n'existera pas si le champ nomv = form["visiteur"].value # correspondant est resté vide else: nomv ="mais vous ne m'avez pas indiqué votre nom" print "Content-Type: text/html\n" print """ <H3>Merci, %s !</H3> <H4>La phrase que vous m'avez fournie était : </H4> <H3><FONT Color="red"> %s </FONT></H3>""" % (nomv, text) histogr ={} for c in text: histogr[c] = histogr.get(c, 0) +1 liste = histogr.items() # conversion en une liste de tuples liste.sort() # tri de la liste print "<H4>Fréquence de chaque caractère dans la phrase :</H4>" for c, f in liste: print 'le caractère <B>"%s"</B> apparaît %s fois <BR>' % (c, f)
Merci d'avance, et je rappelle que je débute
Partager