Les applications web et Python
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 !! :yaisse2: )
- 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
Code:
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> |
input_query.py
Code:
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 :
Code:
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) |
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
:bug:
Merci d'avance, et je rappelle que je débute ;)