带命名空间的到底有啥用
如图所示:
这句代码的意思是嵌套一个oauth路径下的urls,并且给他一个命名空间叫做auth
在index下面创建一个参数并赋值
那么问题来了,讲师最后说代码成功,输出了ok:/ article / 2020 /,并且控制台也显示/auth/index/,但是这难道不是上面的url反向转换和return HttpResponse('ok:' +url)的结果么,
将带命名空间那两句代码也就是url_auth=reverse('auth:index')
print(url_auth)
给注释掉也完全不影响最后的结果,还是和没有注释时输出结果一样
那么这里的命名空间有啥用?讲师最后说的成功了是指什么意思?是有什么网站的细节他忘说了么?
还有一个问题不能理解,
这句代码表示嵌套了oauth包下的urls模块,该模块代码如图
对应的oauth下的views模块代码如图:
这里最后输出的结果为什么不是oauth包下的index方法输出oauth index ,而是text_django包下的index方法呢
正在回答
同学,你好。
1、页面中显示的结果是return的内容,而控制台输出的结果同url_path的值。在视图函数中return HttpResponse()的是url,因此注释掉url_path语句是不影响页面显示结果的,只是在控制台没有相应的输出,同学也可以HttpResponse()中的参数写为url_path,输出结果为图3
2、老师说的成功是指reverse成功了,添加了命名空间在使用reverse时,直接是reverse(命名空间namespace:name)即可,不同的应用可能会存在相同的url,为了避免使用reverse()方法出现反向解析错误,因此使用命名空间
3、在url中访问的是text_django的urls中的index,并不是ouath下的index,因此输出结果不是oauth idnex。同学在浏览器中访问http://127.0.0.1:8000/auth/index/即可
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星