Mas problemas con el Cherrypy

Chema Cortes py en ch3m4.org
Lun Jun 2 10:01:57 CEST 2003


Adrian Ferreres Esteller escribió:
>   Tengo otro problemilla con el Cherrypy. Cuando programo y detecto un 
> error, despues de corregirlo, compilar de nuevo los archivos .cpy y 
> cargar de nuevo el servidor me sigue dando el mismo error. Supongo que 
> sera que despues de lanzar el servidor de Cherrypy algo se quedara por 
> ahi residiendo en algun lugar. ¿Alguien sabe de alguna orden para que 
> esto no vuelva a pasar?

No debería sera así. Si cortas la ejecución del servidor (CTRL-C en 
linux, CTRL-Inter en windows), el servidor se para totalmente sin dejar 
nada residente. Comprueba que el compilado ha ido bien, no sea que estés 
volviendo a lanzar siempre el mismo .py

> Luego me gustaria consultaros otra cosa. He hecho otro programa de 
> Cherrypy que es el siguiente:
> 
> use Cola_Tecnico
> CherryClass Seleccion_cola:
> 
> mask:
>  def index(self,colas=1):
>      <HTML>
>          <BODY>
>              <H3>Seleccion de averia</H3>
>              <FORM py-attr="request.base" ACTION="" METHOD=GET>
>                  <SELECT NAME=colas>
>                      <OPTION SELECTED VALUE=1> cola1
>                      <OPTION VALUE=2> cola2
>                      <OPTION VALUE=3> cola3
>                      <OPTION VALUE=4> cola4
>                      <OPTION VALUE=5> cola5
>                      <OPTION VALUE=6> cola6
>                  </SELECT>
>                  <INPUT TYPE=SUBMIT VALUE="Aceptar">
>              </FORM>
>              <py-exec="cola_Tecnico.actualiza_cola(colas)>
>          </BODY>
>      </HTML>
> 
> En este programa se da algo muy extraño. Cuando aprieto el boton 
> "Aceptar" para dar un nuevo valor a la variable "colas" resulta que me 
> da un error diciendome que la funcion index no tiene declarado que se le 
> pase ninguna variable colas, sinembargo, cuando se carga la pagina por 
> primera vez si que se le pasa el valor de colas al metodo 
> "cola_Tecnico.actualiza_cola" por lo tanto bien que es reconocida la 
> variable "colas" dentro de la función. Un error que he pensado que 
> podria ser es que la colas del SELECT y la colas del index no sean del 
> mismo tipo pero esto no creo que sea el problema pues segun tengo 
> entendido python genera las variables de forma dinamica. ¿Alguien me 
> podria hechar una mano? Muchas Gracias

Cuando en el formulario pones simplemente 'request.base', la llamada se 
redirige automáticamente a request.base+'/root/index'. Prueba con algo 
más explícito:

<FORM py-attr="request.base+'/seleccion_cola/index" ACTION="" METHOD=GET>

Con lo de los tipos de datos, ten en cuenta que los argumentos que 
recibes con los métodos GET y POST son siempre de tipo "string", lo que 
podría darte algún error en las comparaciones con números y otros tipos 
de datos. En tu caso, en la primera ejecución del index el valor por 
defecto 'colas=1' hace de 'colas' un número entero. Pero en las 
siguientes invocaciones, después del pulsar el botón de aceptar, el 
argumento 'colas' será de tipo string ("1", "2", "3",...).




Más información sobre la lista de distribución Python-es