Django如何获取URL数据,有哪些方式
导读:这篇文章给大家介绍了“Django如何获取URL数据,有哪些方式”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Django如何获取URL数据,有哪些方式”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的...
这篇文章给大家介绍了“Django如何获取URL数据,有哪些方式”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Django如何获取URL数据,有哪些方式”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
Django获取URL中的数据
URL中的参数一般有两种形式。如下所示:
1. https://zy010101.blog.csdn.net/article/details/120816954 2. https://so.csdn.net/so/search?q=Django& t=blog& u=zy010101
我们将第一种形式称为“URL路径参数”;第二种形式称为“URL关键字形式”。下面讲述如何在Django中获取这两种形式的数据。
URL路径参数
使用path函数
from django.urls import path from . import views urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/int:year> /', views.year_archive), path('articles/int:year> /int:month> /', views.month_archive), path('articles/int:year> /int:month> /slug:slug> /', views.article_detail), ]
关于这段URL的解释说明,直接参考Django官方文档即可。
为了防止有时候进不去文档,我将官方文档也直接贴在下面:
使用re_path函数
如果,使用path函数并不能满足你匹配URL的要求,那么可以使用re_path函数来使用正则表达式来匹配URL路径中的参数。需要注意在Django中,使用正则表达式来获取分组中的值的语法是(?Pname>
pattern)
,其中 name 是组名,pattern 是要匹配的模式。
from django.urls import path, re_path from . import views urlpatterns = [ path('articles/2003/', views.special_case_2003), re_path(r'^articles/(?Pyear> [0-9]{ 4} )/$', views.year_archive), re_path(r'^articles/(?Pyear> [0-9]{ 4} )/(?Pmonth> [0-9]{ 2} )/$', views.month_archive), re_path(r'^articles/(?Pyear> [0-9]{ 4} )/(?Pmonth> [0-9]{ 2} )/(?Pslug> [\w-]+)/$', views.article_detail), ]
这段URL配置的说明可以参考使用正则表达式
同样,为了防止有时候进不去文档,我将官方文档也直接贴在下面:
需要特别注意的是,正则表达式进行匹配之后,捕获的参数都作为字符串传递给视图函数(视图类)。
URL关键字形式
通常,除了在URL路径中传递数据,也可以在URL参数中进行数据传递。例如:
http://www.demo.com/index?keys=123& values=qwe
这段URL传递了参数keys和values,它们的值分别是123,qwe.
在此之前,先来介绍一下前备条件QueryDict。
HttpRequest对象的属性GET、POST都是QueryDict类型的对象
Django获取URL关键字参数可以通过HttpRequest.GET属性来获取。例如:
def test(request): a = request.GET.get("a") b = request.GET.get("b") c = request.GET.get("c") a_all = request.GET.getlist("a") res = a+'br> '+b+'br> '+c+'br> '+str(a_all) return HttpResponse(res)
现在使用如下的URL进行请求:
http://127.0.0.1:8008/test?a=1& a=2& b=3& c=4
页面显示如下所示:
查询字符串不区分请求方式,即假使客户端进行POST方式的请求,依然可以通过request.GET获取请求中的查询字符串数据。
总结
到此这篇关于“Django如何获取URL数据,有哪些方式”的文章就介绍到这了,感谢各位的阅读,更多相关Django如何获取URL数据,有哪些方式内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Django如何获取URL数据,有哪些方式
本文地址: https://pptw.com/jishu/650545.html