Python Django将select url参数传递给视图
假设我有一个url,它捕获了几个参数。例如:Python Django将select url参数传递给视图,python,django,url-routing,Python,Django,Url Routing,假设我有一个url,它捕获了几个参数。例如: url(r'^(?P<l_slug>[-\w]+)/(?P<t_slug>[-\w]+)/(?P<event_id>\d+)/$', 'views.SomeView'), 我处理这个问题的方式是: def SomeView(request, l_slug=None, t_slug=None, event_id=None): return HttpResponse('hi {}'.format(event_
url(r'^(?P<l_slug>[-\w]+)/(?P<t_slug>[-\w]+)/(?P<event_id>\d+)/$', 'views.SomeView'),
我处理这个问题的方式是:
def SomeView(request, l_slug=None, t_slug=None, event_id=None):
return HttpResponse('hi {}'.format(event_id))
是否有限制从url行传递到视图的参数的内容?您唯一的限制是查询字符串的长度(据我所知),它因浏览器而异。有关更多详细信息,请参阅 至于让URL更具可读性,或者只提取所需的参数,这有点主观 如果希望URL显式,可以通过传入命名参数继续执行当前操作,但可以将方法签名更改为:
def some_view(request, *args, **kwargs):
# more code here
然后检索所需的arg或kwarg,如果它不存在,则返回None
还可以传递与querystring参数相同的值。如果您这样做了,您就不必在视图中定义任何arg或kwarg,您只需从请求中提取值。获取字典,或者如果找不到键,则返回None
因此,什么更具可读性取决于您。您唯一的限制是查询字符串的长度(据我所知),它因浏览器而异。有关更多详细信息,请参阅
至于让URL更具可读性,或者只提取所需的参数,这有点主观
如果希望URL显式,可以通过传入命名参数继续执行当前操作,但可以将方法签名更改为:
def some_view(request, *args, **kwargs):
# more code here
然后检索所需的arg或kwarg,如果它不存在,则返回None
还可以传递与querystring参数相同的值。如果您这样做了,您就不必在视图中定义任何arg或kwarg,您只需从请求中提取值。获取字典,或者如果找不到键,则返回None
因此,什么内容更具可读性取决于您。我的问题不是查询字符串的长度。这是关于传递比查询字符串中更少的参数。如果为了url的可读性,querystring提供了几个参数,但我只想要其中一个参数,那该怎么办?我已经用更多的想法补充了我的答案。谢谢你的额外想法。它给了我很好的方向感!我的问题不是询问的长度。这是关于传递比查询字符串中更少的参数。如果为了url的可读性,querystring提供了几个参数,但我只想要其中一个参数,那该怎么办?我已经用更多的想法补充了我的答案。谢谢你的额外想法。它给了我很好的方向感!