Python Django获取URL中的数据详解


Posted in Python onNovember 01, 2021

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官方文档即可。

为了防止有时候进不去文档,我将官方文档也直接贴在下面:

Python Django获取URL中的数据详解

使用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配置的说明可以参考使用正则表达式

同样,为了防止有时候进不去文档,我将官方文档也直接贴在下面:

Python Django获取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

页面显示如下所示:

Python Django获取URL中的数据详解

查询字符串不区分请求方式,即假使客户端进行POST方式的请求,依然可以通过request.GET获取请求中的查询字符串数据。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Python 相关文章推荐
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
详解python中asyncio模块
Mar 03 Python
Python实现时钟显示效果思路详解
Apr 11 Python
Python2包含中文报错的解决方法
Jul 09 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
Django REST framwork的权限验证实例
Apr 02 Python
Python数据正态性检验实现过程
Apr 18 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
pyCharm 实现关闭代码检查
Jun 09 Python
python编程项目中线上问题排查与解决
Nov 01 #Python
python实现层次聚类的方法
Python list列表删除元素的4种方法
Nov 01 #Python
Python面向对象编程之类的概念
Nov 01 #Python
python代码实现扫码关注公众号登录的实战
python编程实现清理微信重复缓存文件
Nov 01 #Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 #Python
You might like
简单谈谈PHP中的trait
2017/02/25 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
Python 判断是否为质数或素数的实例
2017/10/30 Python
python实现猜单词小游戏
2020/05/22 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
进口业务员岗位职责
2014/04/06 职场文书
文明单位创建材料
2014/12/24 职场文书
交通事故被告答辩状
2015/05/22 职场文书
天河观后感
2015/06/11 职场文书
2019财务转正述职报告
2019/06/27 职场文书
利用python进行数据加载
2021/06/20 Python