美文网首页
django url位置参数传递到view函数

django url位置参数传递到view函数

作者: 鸟它鸟 | 来源:发表于2018-06-05 21:02 被阅读0次

位置参数是指我们在uri的路径中将数据通过url传递给视图函数的一种方式,先看段代码,然后我们分析下传递的过程

urls部分

urlpatterns = [
    url(r'^hello/([0-9]{4})/([0-9]{2})/([0-9]{2})',index),
]

view部分

def index(request, *args, **kwargs):
    print(args)
    return HttpResponse("hello")

用户访问的url
http://10.89.0.5:8000/mytest/hello/2018/06/05

查看控制台输出

System check identified no issues (0 silenced).
June 05, 2018 - 12:29:20
Django version 1.11.13, using settings 'reboot_dj.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
('2018', '06', '05')

以上的代码块,我们首先看view部分的,这里我们看到在我们定义的视图函数中接收request和*args, *kwargs几种数据,那么request接收是被django封装后的请求数据,args, **kwargs接收的就是uri中的数据,至于怎么发送数据给视图函数,那就是urls部分的定义了

urls中当前仅用了最基本的正则匹配,匹配年月日的信息,注意这次的匹配没有key-value的对应关系。当用户的请求到该匹配项的时候,匹配项会对uri的每一层进行对应层的正则数据匹配,匹配完成后将数据给到view的视图中。
根据上边的例子,urls最后的调用函数应该是
index(request,"2018","06","05")

捕获位置参数,在url定义的正则表达式中将要传递的数据用()括起来就好,括号内填写匹配数据的正则表达式。
比如url(r'^hello/([0-9]{4})/含义就是对用户访问url http://xxx/hello/对这里的数据进行匹配

OK 上边的例子是传递没有key-value数据的例子,如果想要给view函数传递有k-v的数据怎么玩呢?稍稍修改下url信息

view部分

def index(request, *args, **kwargs):
    print(kwargs)
    return HttpResponse('hello')

urls部分

urlpatterns = [
    url(r'^hello/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})',index),
]

ok然后访问吧,访问后看控制台的输出

System check identified no issues (0 silenced).
June 05, 2018 - 12:58:15
Django version 1.11.13, using settings 'reboot_dj.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
{'year': '2018', 'month': '06', 'day': '00'}

可以看到,我们urls给视图函数传递数据的时候有了k-v的数据格式
根据上边的例子,urls最后的调用函数应该是
index(request,year="2018",month="06",day="05")

相关文章

  • django url位置参数传递到view函数

    位置参数是指我们在uri的路径中将数据通过url传递给视图函数的一种方式,先看段代码,然后我们分析下传递的过程 u...

  • 【第五天】Python的参数传递

    3.2参数传递 1基本传参 把数据用参数形式输入到函数,被称为参数传递若有多个参数,那么在调用函数时py会根据位置...

  • 函数参数

    位置参数 位置参数(positional argument)要求调用函数时根据函数定义的参数位置来传递参数。例如定...

  • Django URL传递参数方式总结

    Django URL传递参数方式总结 (django2.0) 新建一个Django项目,默认的urls.py文件内...

  • DJango在Url中传递参数给到视图函数

    Python Django框架的url映射非常方便,具体的使用逻辑和原理也非常容易理解,就是设置URL,将其映射到...

  • python知识补充点积累

    1、python的位置参数、默认参数、关键字参数、可变参数区别 位置参数:调用函数时根据函数定义的参数位置来传递参...

  • 09:函数的参数类型

    python学习day_7: 函数的参数 1、必须参数(位置参数)调用函数时根据函数定义的参数位置来传递参数。 2...

  • python位置参数、关键词参数、默认参数、参数组

    一、位置参数 调用函数时根据函数定义的参数位置来传递参数。 二、关键词参数 用于函数调用,通过“键-值”形式加以指...

  • Go 语言函数 引用传递

    引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 引用传递...

  • Django的参数传递问题

    [TOC] Django的参数传递问题 传统的传参方式url?name=value&id=XXX get请求 re...

网友评论

      本文标题:django url位置参数传递到view函数

      本文链接:https://www.haomeiwen.com/subject/rmvmsftx.html