欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)

程序员文章站 2022-05-19 09:56:06
...

介绍:

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVT的框架模式,即模型M,视图V和模版T。

错误截图:

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)

错误原因: 

由于我在urls.py使用re_path正则匹配数字的方式,后台search.py不能接受到变量值!

匹配变量:

  • 字符串:(?P<prm>\w+)
  • 数字:(?P<int>\d+)
  • 类型、个数匹配:(?P<p>[0-9]{4}) //4个0-9的数字

urls.py

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)

search.py(错误的写法)

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)

问题解决:

 search.py(正确的写法)

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)

总结: 

由于使用了正则匹配数字在URL上,所以后台对应函数必须接收参数,而**kwargs可以当作容纳多个key和value的dictionary,类似接收数据的参数还有*args。

那么*args和**kwargs区别?

print '======================================'
def func(*args,**kwargs):
    print 'args=',args
    print 'kwargs=',kwargs
    print '======================================'
 
func(1,2,3)
func(a=1,b=2,c=3)
func(1,2,3,a=1,b=2,c=3)
func(1,'b','c',a=1,b='b',c='c')

Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)