Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Heur

Python CGI ...

Recommended Posts

Olá galera.

Estou fazendo um código para teste.

Estou usando O método get e post.

Porém, não está dando certo.

Aqui vão os códigos.

 

Index.py:

#! C:Python26python.exe -u#-*- coding: ISO-8859-1 -*-import mathimport cgi print "Content-type: text/html; ISO-8859-1"printform = cgi.FieldStorage()form.getvalue('posthead')form.getvalue('postbody')menu = ["Home", "Galeria", "Portfolio", "Tutoriais", "Contato", "Mapa do Site"]title = 5#posthead = 'Nothing to Say'#postbody = 'Não tenho nada a falar, apenas estou fazendo testes 
Imagem Postada Por isso, quanto mais eu escrever, Melhor.' print '<html><head>' print '<title>Test page nº '+str(title)+'</title>' print '</head><body>' print '<div id="menu" align="right"><h4>' for i in range(0,6): print '<a href="">'+menu+'</a> | ' print '</h4></div>' print '<u><a href="newpost.py">Novo Post</a></u>' print '<div id="headpost" align="left"><br>' print '<table border="1">' print '<tr><td width="400">' print '<h2>%s</h>' % posthead print '</tr></td>' print '</h2></div>' print '<div id="bodypost" align="left">' print '<table border="1">' print '<tr height=""><td width="400">' print '<i>%s</i>' % postbody print '</body>' print '</html>'

E aquele link Novo Post, chama esse aqui.

 

newpost.py:

#! C:Python26python.exe -u#-*- coding: ISO-8859-1 -*- print "Content-type: text/html; ISO-8859-1"printprint '''<form action="index.py" method="post">				<table align="left" border="0">					<tr><td align="right">Título do Post: </td>						<td><input type="text" name="posthead" size="25"></td></tr>					<tr><td align="right">Texto do Post: </td>						<td><textarea rows="4" cols="20" name="postbody"></textarea></td></tr>					<tr><td align="right"><input type="submit" value="Submit" /></td></tr>		 </form>'''
Pois é.

Até aí beleza.

O detalhe é que não to conseguindo dá o post no meu campo de novo post

no Index.py.

 

Tava pensando se não tinha que atualizar a janela.

 

Alguém dá um auxilio?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já instalou o Firebug no Firefox p/ ver se aparece alguma coisa na aba Rede?

Já leu os logs do servidor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim.

Bem observado.

No Log de Acesso as ultimas linhas são essas:

 

127.0.0.1 - - [30/Jul/2010:16:21:22 -0300] "GET /cgi-bin/bin/newpost.py HTTP/1.1" 200 392
127.0.0.1 - - [30/Jul/2010:16:21:26 -0300] "POST /cgi-bin/bin/index.py HTTP/1.1" 200 384

E no Log de Erro são essas:

 

[Fri Jul 30 16:21:27 2010] [error] [client 127.0.0.1] Traceback (most recent call last):\r, referer: http://localhost/cgi-bin/bin/newpost.py
[Fri Jul 30 16:21:27 2010] [error] [client 127.0.0.1]   File "C:/www/cgi-bin/bin/index.py", line 30, in <module>\r, referer: http://localhost/cgi-bin/bin/newpost.py
[Fri Jul 30 16:21:27 2010] [error] [client 127.0.0.1]     print '<h2>%s</h>' % posthead\r, referer: http://localhost/cgi-bin/bin/newpost.py
[Fri Jul 30 16:21:27 2010] [error] [client 127.0.0.1] NameError: name 'posthead' is not defined\r, referer: http://localhost/cgi-bin/bin/newpost.py

Então.

Na minha visão, parece que está dando get e post, mas

tá retornando erro na identificação da variavel do GET.

 

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia o log de erro e o código e responda em que lugar do index.py você está definindo a variável posthead antes de usar no print.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Heur, tudo bem? Nem sei se você ainda está com esse problema, mas mesmo assim vou tentar ajudar:

 

 

Lá na parte do:

 

form.getvalue('posthead')

form.getvalue('postbody')

 

Substitua por:

 

posthead=form.getvalue('posthead')

postbody=form.getvalue('postbody')

 

Mas para deixar gravado no index acho que você teria que criar uma pasta de template e configurar direitinho, sabe, Python pra cá, HTML pra lá. :D

 

Também estou com um projeto parecido e pretendo fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.