Python Django获取URL中的数据详解 目录 Django获取URL中的数据 URL路径参数 使用path函数 使用re_path函数 URL关键字形式 总结 Django获取URL中的数据 URL中的参数一般有两种形式.如下所示: 1. https://zy010101.blog.csdn.net/article/details/120816954 2. https://so.csdn.net/so/s
目录
- Django获取URL中的数据
- URL路径参数
- 使用path函数
- 使用re_path函数
- 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中,使用正则表达式来获取分组中的值的语法是(?P<name>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/(?P<year>[0-9]{4})/$', views.year_archive),
re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\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获取请求中的查询字符串数据。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
本文标题为:Python Django获取URL中的数据详解


基础教程推荐
- 四步教你学会打包一个新的Python模块 2022-10-20
- Python爬取当网书籍数据并数据可视化展示 2023-08-11
- Python基础学习之函数和代码复用详解 2022-09-02
- Python 中 Elias Delta 编码详情 2023-08-08
- centos系统 anaconda3(python3)安装pygrib 2023-09-04
- CentOS 7.5 安装 Python3.7 2023-09-03
- 基于Python实现股票数据分析的可视化 2023-08-04
- ubuntu 18 python3.6 的安装与 python2的版本切换 2023-09-03
- Centos7下安装python环境 2023-09-04
- python的环境conda简介 2022-10-20