2015-02-09 3 views
0

В чем ключевое различие между методами просмотра с использованием только ключевого слова request или указания точных имен параметров?Разница между g с использованием запроса и имен конкретных параметров в Django

Например, я вижу в коде, есть мнение, как это:

def get_accounts(request): 
    in name in request.GET and request.GET['name'] 

И другой вариант:

def get_accounts(request, name, some_custom_parameters): 
    if name and some_custom_validations: 
     some_expressions 

Мой вопрос касается разницы в использовании. Если я получаю запрос POST от front-end через jQuery или что-то еще; когда (и почему) мне нужно использовать только ключевое слово request и когда указать конкретные параметры, так как request может включать в себя все необходимые параметры внутри себя.

ответ

0

Read this Wikipedia article:

семантические URL-адреса, а также иногда называют чистыми URL, RESTful URL, дружественных URL, или SEO дружественных URL-адресов, являются унифицированные указатели ресурсов (URL), предназначенные для повышения удобства и доступность веб-сайта или веб-службы, будучи непосредственно и интуитивно значимыми для неопытных пользователей

+0

Я не уверен, почему кто-то занимет это. «указание точных имен параметров» позволяет создавать чистые URL-адреса. Также полезно добавлять правила регулярных выражений. –

1

дополнительные аргументы в вашей функции взяты из вашей конфигурации пути.

Вы задаете шаблоны URL-адресов; если включить элементы в шаблоне URL те будут переданы на ваш взгляд, как дополнительные аргументы:

urlpatterns = patterns('', 
    url(r'^accounts/(?P<name>\w+)/(?P<some_custom_element>\w+)$', views. get_accounts), 
    # ... 
) 

В приведенном выше примере вид сконфигурирован для прослушивания любой URL, начиная с accounts/ и в том числе более двух элементов; они передаются вашему представлению в качестве аргументов.

Другими словами, это не POST или GET данные запроса, передаваемые этим аргументам.

Возможно, вы хотите, чтобы re-read the Django tutorial на эту тему.

Вы должны использовать дополнительные параметры на своем пути для создания дружественных URL-адресов, заносимых в закладки. Путь /users/1553537/giorgi-tsiklauri намного читабельнее и дружелюбно, чем /users?id=1553537.

+0

ok, это регулярное выражение, и это заставляет вас использовать этот шаблон URL-адреса. , но я смущен в случае, если, почему я не могу использовать только объект запроса? , потому что я могу передать все параметры в объекте запроса независимо от имени параметров. Например, я мог бы сделать что-то вроде: def func (request): if 'name' in request.GET e.t.c. Прошу прощения, если это слишком фиктивный вопрос, мне просто нужно разъяснение. –

+0

@GiorgiTsiklauri: позволяет контролировать, какие URL-адреса работают и какие URL-адреса являются недействительными. –

+0

@GiorgiTsiklauri: 'request.GET' не содержит элементов пути. Если ваш URL-адрес '/ users/1553537/giorgi-tsiklauri',' 'request.GET ['id']' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'такой параметр GET. –