为了账号安全,请及时绑定邮箱和手机立即绑定

Django url 传递任意数量的参数,以 / 分隔

Django url 传递任意数量的参数,以 / 分隔

弑天下 2023-09-19 17:11:51
如何定义 URL 模式,以便可以向 URL 传递所需数量的参数?我确实研究了文档和其他 stackoverflow 问题,但没有找到类似的内容。我需要它作为电子商务网站的过滤器。我想实现这样的目标:urlpatterns = [    path('test/<str:var1>-<str:var2>/<str:var3>-<str:var4>/...', views.test, name='test'),]在我的视图函数中,我会这样定义它:def test(request, *args, **kwargs):    # Do whatever you want with kwargs    return HttpResponse('Test')
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

我认为这是创建路径的错误方法,如果您想将其用作过滤器而不是在路径中使用它,则应该使用 url 参数作为 get 请求。

但如果您坚持这样做,您可以使用正则表达式“re_path”

# urls.py


from django.urls import path, re_path

from django.conf.urls import url

from myapp import views


urlpatterns = [

    re_path(r'^test/(?P<path>.*)$', views.test, name='test'),

    # or use url instead it's same thing

    url(r'^test/(?P<path>.*)$', views.test, name='test'),

]


查看完整回答
反对 回复 2023-09-19
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

您考虑过使用query_params吗?

那是path('test', views.test, name='test')

网址:/test/?filter=asd...

然后通过视图中的请求访问它:

def test(request):
    params = request.GET.get('filter', None)
        return HttpResponse()

看看你是否能像这样解决你的问题:)


查看完整回答
反对 回复 2023-09-19
  • 2 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信