在 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
本身可以包含所有需要的参数。
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
.
更具可读性和友好性
仅使用 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
本身可以包含所有需要的参数。
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
.