Obter parâmetros do url

52 views
Skip to first unread message

Hélio Miranda

unread,
May 15, 2013, 8:08:26 AM5/15/13
to django...@googlegroups.com
Oi.

Preciso de obter um parametro do url e não sei como.
Eu fazia assim: url(r'^view/(?P<id>\w+)', 'rest.views.view'),
E tudo ok.


Com um url assim, como consigo obter apenas o numero (20519364e38774a71190edb28c) ?

Alguém me pode ajudar?

Renne Rocha

unread,
May 15, 2013, 8:15:38 AM5/15/13
to django...@googlegroups.com
Sua expressão regular (?P<id>\w+) só consegue pegar seqüências de caracteres (\w). Como sua string possui outros caracteres como % e :, você precisa alterar essa expressão para conseguir obter o valor desejado.

Substituindo (?P<id>\w+) por (?P<id>[\w:%]+) deve resolver o seu problema.



2013/5/15 Hélio Miranda <heli...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Hélio Miranda

unread,
May 15, 2013, 8:20:39 AM5/15/13
to django...@googlegroups.com
Assim como disseste continua igual...

E eu quero obter apenas o 20519364e38774a71190edb28c

Mas como disseste não deu...

Andrews Medina

unread,
May 15, 2013, 12:12:13 PM5/15/13
to django...@googlegroups.com
Olá,

2013/5/15 Hélio Miranda <heli...@gmail.com>:
> O meu url é:
> http://localhost:8080/test/view/%3CGridFSProxy:%20519364e38774a71190edb28c%3E
> E eu quero obter apenas o 20519364e38774a71190edb28c
>
> Mas como disseste não deu...

para ter esse resultado basta mudar a expressão regular.

Algo como a regex abaixo deve funcionar:

r'^view/.*Proxy:%(?P<id>\w+)%.*'

Para conhecer melhor sobre como funciona o urls e o regex, vale a pena ler:

http://www.regular-expressions.info/reference.html
https://docs.djangoproject.com/en/1.5/topics/http/urls/

Valeu!

--
Andrews Medina
www.andrewsmedina.com

Hélio Miranda

unread,
May 20, 2013, 11:04:06 AM5/20/13
to django...@googlegroups.com
Oi.

Preciso de obter um parametro do url  que é o id e não sei como.
Eu faço: url(r'^view/(?P<id>\w+)', 'rest.views.view'),
E tudo ok.

Agora eu tenho um url assim: http://localhost:8080/test/view/<GridFSProxy:20519a3a6c8774a717dc59a84a>

Com um url assim, como consigo obter apenas o numero (20519a3a6c8774a717dc59a84a) ?
Eu estou a tentar assim:
url(r'^view/.*Proxy:%(?P<id>\w+)%.*', 'rest.views.view'),

Mas não está a dar, alguem sabe o que estou a fazer mal?
Alguém me pode ajudar?

Matheus Lima

unread,
May 20, 2013, 11:53:27 AM5/20/13
to django...@googlegroups.com
def minha_view(request, id):
    return HttpResponse(id)


Alguém me pode ajudar?

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Att,

Matheus dos Santos Lima     

Matheus Lima

unread,
May 20, 2013, 11:57:53 AM5/20/13
to django...@googlegroups.com
Os parâmetros de URL são passados como parâmetros da VIEW.

# abaixo será passado o parâmetro "id".
url(r'^view/.*Proxy:%(?P<id>\w+)%.*', 'rest.views.view'),

A view será invocada assim:

rest.views.view(request, id=id)

Note que ele passou o parâmetro nomeado, porque você nomeou na expressão regular da URL. Caso não fosse nomeado, como abaixo:

url(r'^view/.*Proxy:%(\w+)%.*', 'rest.views.view'),

Ele invocaria a função assim:

rest.views.view(request, id)


Hélio Miranda

unread,
May 20, 2013, 12:06:42 PM5/20/13
to django...@googlegroups.com
Não eu estou a fazer assim:

url(r'^view/.*Proxy:%(?P<id>\w+)%.*', 'rest.views.view'),

A passar o parametro id para a view assim:
def view(request, id):

Só que ele não está a fazer isso...
E não sei o que está mal!?

Matheus Oliveira

unread,
May 20, 2013, 1:57:34 PM5/20/13
to django...@googlegroups.com
Boa tarde.
Dessa forma eu consegui capturar o valor

url(r'^view/.*GridFSProxy:(?P<id>\w+)', 'app.views.view'),

def view(request, id)
    return HttpResponse(id)

Abraço.


--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Matheus
+55 16 8170.0339

Hélio Miranda

unread,
May 20, 2013, 2:58:37 PM5/20/13
to django...@googlegroups.com
Obrigado, era isso mesmo, tambem já consegui
Reply all
Reply to author
Forward
0 new messages