Как я создаю объект запроса в Django?

Таким образом, я использую Django с Google App Engine, и у меня есть urls.py файл, который перенаправляет каждый URL к соответствующему методу. Каждый из тех методов автоматически передается "запрос" как один из аргументов, которым я верю, объект HttpRequest.

Как я создаю этот заполненный объект запроса из своего кода? Например, если бы я в рамках некоторого метода глубоко в рамках моего кода, я хотел бы иметь доступ к этому объекту запроса, не имея необходимость передавать его каждой функции, чтобы удостовериться, что это доступно. Принятие urls.py называет нечто метода, способ, которым я в настоящее время делаю, это:

foo(request):
    # stuff here
    bar(request)
     # more stuff here

bar(request):
     # stuff here
    baz(request)
     # more stuff here

baz(request):
    do something with request here

Это кажется неправильным, потому что я должен передать запрос через функции, для которых не нужен он именно так, что я имею его в наличии в baz.

Я хотел бы сделать что-то как:

foo(request):
     # stuff here
    bar()
    # more stuff here

bar():
     # stuff here
    baz()
     # more stuff here

baz():
    request = HttpRequest()
    do something with request here

т.е. не раздают запрос, если я не имею к. Однако делая запрос = HttpRequest () возвращает пустой объект запроса..., что я хочу, полностью заполненная версия, как то, что передается в каждый метод, названный от urls.py.

Я поглядел через документацию для HttpRequest здесь: http://docs.djangoproject.com/en/dev/ref/request-response/, но не видел способ сделать это.

Любые мысли значительно ценились бы.

Спасибо, Ryan

6
задан ryan 19 January 2010 в 23:33
поделиться

1 ответ

можно также использовать «$baseName' _ $count$Ext»

-121--2501861-

Вам нужен этот API: http://code.google.com/apis/ajaxsearch/local.html

Также проверьте следующее: http://googleajaxsearchapi.blogspot.com/2007/06/local-search-control-for-maps-api.html

-121--4998427-

Просто создайте переменную запроса перед определениями представления и задайте ее значение при получении из представления (с помощью кода примера):

current_request = None

foo(request):
    current_request = request
    # stuff here
    bar()
    # more stuff here

bar():
     # stuff here
    baz()
     # more stuff here

baz():
    # do something with currest_request here

См.: Примечания к области переменных Python

Обновление: Этот вопрос очень похож на ваш, и принятое решение в основном создает глобальный запрос

0
ответ дан 17 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: