在 Django 中使用 Request 和特定参数名称的区别

Difference betweeng using Request and specific parameter names in Django

仅使用 request 关键字或指定确切参数名称的视图方法之间的主要区别是什么?

比如我在代码中看到有这样的视图:

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

我的问题是关于用法上的差异。如果我通过 jQuery 或其他方式从前端收到 POST 请求;何时(以及为什么)我必须单独使用 request 关键字以及何时指定具体参数,因为 request 本身可以包含所有需要的参数。

阅读this Wikipedia article:

Semantic URLs, also sometimes referred to as clean URLs, RESTful URLs, user-friendly URLs, or SEO-friendly URLs, are Uniform Resource Locators (URLs) intended to improve the usability and accessibility of a website or web service by being immediately and intuitively meaningful to non-expert users

您函数的额外参数取自您的路径配置

您设置了 URL 个模式;如果您在 URL 模式中包含元素,这些元素将作为额外参数传递给您的视图:

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

在上面的示例中,视图被配置为监听任何以 accounts/ 开头并包括另外两个元素的 URL;这些作为参数传递给您的视图。

换句话说,不是 POST 或 GET 请求数据被传递给这些参数。

您可能想 re-read the Django tutorial 关于这个主题。

您将在路径中使用额外的参数来创建友好的、可收藏的 URLs。路径 /users/1553537/giorgi-tsiklauri/users?id=1553537.

更具可读性和友好性