Django错误: got an unexpected keyword argument 'int'(urls.py中re_path的使用)
程序员文章站
2022-05-19 09:56:06
...
介绍:
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVT的框架模式,即模型M,视图V和模版T。
错误截图:
错误原因:
由于我在urls.py使用re_path正则匹配数字的方式,后台search.py不能接受到变量值!
匹配变量:
- 字符串:(?P<prm>\w+)
- 数字:(?P<int>\d+)
- 类型、个数匹配:(?P<p>[0-9]{4}) //4个0-9的数字
urls.py
search.py(错误的写法)
问题解决:
search.py(正确的写法)
总结:
由于使用了正则匹配数字在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')