[Python-es] Cómo utilizar la variable controller en PyRoutes
Olemis Lang (Simelix)
olemis+py en gmail.com
Mar Jun 14 02:42:45 CEST 2011
2011/6/13 Chema Cortes <py en ch3m4.org>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> El 13/06/11 14:10, Olemis Lang (Simelix) escribió:
>> Hola a tod en s !
>>
>> Recientemente he utilizado el módulo `routes` y he notado algo
>> que, a mi entender, es un poco raro; especialmente después de
>> leer la documentación. Allí mencionan ejemplos como el siguiente.
>> Sin embargo, cuando se ejecuta este fragmento no se detecta
>> la ruta
>>
>> {{{
>> #!python
>>
>>>>> mapper = Mapper()
>>>>> mapper.connect('test', '/{controller}/{action}')
>>>>>
>>>>> print mapper.routematch(environ=environ)
>> None
>>
>> }}}
>
> En el Mapper() no especificas los controladores (ni tampoco el
> directorio de los controladores). Por defecto, si no encuentra el
> controlador adecuado siempre devuelve None. Ése es también el motivo por
> el que el código que pones luego funciona al especificar un controlador.
>
> Para solucionarlo, tienes dos opciones:
>
> 1.- pasar a Mapper() la ruta (absoluta) a los controladores
>
> mapper = Mapper(directory='/ruta/a/los/controllers']
>
>
> 2.- pasar a Mapper() una función controler_scan que devuelva una lista
> de controladores
>
>
> Por ejemplo, en el segundo caso sería algo así:
>
> def controller_scan(directory=None):
> return ['controller']
>
> mapper = Mapper(controller_scan=controller_scan)
>
Interesante respuesta ... lo pruebo ahora mismo ...
;)
--
Regards,
Olemis.
Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/
Featured article:
Uso local de Dragonfly para depurar sitios web con Opera -
http://simelo-es.blogspot.com/2011/06/uso-local-de-dragonfly-para-depurar.html
Más información sobre la lista de distribución Python-es