Джанго: захват параметров - PullRequest
0 голосов
/ 08 января 2011

У меня самое сложное время с тем, что должно быть супер простым.Я не могу получить переданные параметры в django.

В браузере я набираю:

http://localhost:8000/mysite/getst/?term=hello

Мой шаблон URL:

(r '^ mysite / getst / $', 'tube.views.getsearchterms')

My View is

def getsearchterms (запрос):

my_term = some_way_to_get_term

return HttpResponse(my_term)

В этомВ случае, если он должен вернуть «привет».Я вызываю представление, но мне возвращается пустое значение.Я пробовал различные формы GET ....

Каким должен быть some_way_to_get_term?

Ответы [ 2 ]

3 голосов
/ 08 января 2011

Параметры get могут быть доступны как любой словарь:

my_term = request.GET['term']
my_term = request.GET.get('term', 'my default term')
0 голосов
/ 08 января 2011

Используя произвольные аргументы после?и затем перехватывает их с помощью request.GET ['term'], вы упускаете лучшие возможности модуля Django urls: согласованная схема URL

Если в этом вызове URL всегда присутствует «term», он должен бытьимеет смысл для вашего приложения, поэтому ваше правило URL может выглядеть следующим образом:

(r'^mysite/getst/(?P<term>[a-z-.]+)/', 'tube.views.getsearchterms')

Это означает:

  1. Что у вас более оптимизированная для SEO и стабильная схема URL (нет? term = this & q = that inside)
  2. Чтобы вы могли легко уловить свой аргумент в своем представлении:

Вот так

def getsearchterms(request,term):
    #do wahtever you want with var term
    print term
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...