2009/11/11 moriarty <
moriarty...@gmail.com>:
>
> Os argumentos ficam em request.args
>
> é sempre bom testar se os argumentos estão lá antes para evitar um
> erro do tipo "index out of range"
>
> algo como:
> x = request.args[0] if len(request.args) > 0 else None
> y = request.args[1] if len(request.args) > 1 else None
>
> ou colocar um if antes:
>
> if len(request.args) > 1:
> x, y = request.args[0], request.args[1]
Na verdade, existe o request.args(N), que retorna None caso o N-ésimo
índice não exista (ou o valor do N-ésimo argumento, caso exista).
Tem também o request.vars, que é a junção do request.get_vars e
request.post_vars (são as variáveis query string GET e POST,
respectivamente).
Com relação aos argumentos, ficam assim:
http://seu_dominio.tld/aplicacao/controller/action/argumento1/argumento2?var1=valor1&var2=valor2
Nesse caso:
request.args[0] = request.args(0) = 'argumento1'
request.args[1] = request.args(1) = 'argumento2'
request.args[2] = exceção IndexError, request.args(2) = None
request.vars['var1'] = request.get_vars['var1'] = 'valor1'
request.vars['var2'] = request.get_vars['var2'] = 'valor2'
request.vars['qualquer_outra_var_nao_passada'] =
request.get_vars['qualquer_outra_var_nao_passada'] = exceção KeyError
Nota: chamar como função vale somente para request.args e não para os demais.
> dependendo do caso um se adapta melhor que o outro.
>
> On 9 nov, 18:14, Italo Maia <
italo.m...@gmail.com> wrote:
>> Como eu passo/pego argumentos numa url?
>> No Django, eu iria configurar o urls.py com um (?P<campo><re_exp>) e
>> obteria o valor de campo nos argumentos do método. Em web2py, como eu
>> faria isso?
> >
>
--
Álvaro Justen
Diretor de Desenvolvimento
Peta5 - Nós fazemos TV digital
http://www.peta5.com.br/
21. 3021-6001 / 9898-0141