关于命名空间的应用场景

关于命名空间的应用场景

http://img1.sycdn.imooc.com//climg/5ff12cd0091e21f417840166.jpg

关于namespace的使用场景不太理解,不说reverse的解析防错用途,视频里上面图片里的这句话是什么意思?

  1. 不同的URL对应的结果本来不就应该是不同的吗?为什么要结果相同?

  2. 角色是什么概念?URL就是资源的唯一标识,和谁去访问有什么关系呢?如果把角色的不同已经在URL中进行了表述,那就是不同的URL而已啊,浏览器难道会判定使用者是什么角色?都是凭借URL进行访问的呀?

开发者希望的效果是下面中的哪一种,为什么?:

  1. 访问不同的URL,得到的结果相同

  2. 访问不同的URL,得到的结果不同

两种角色访问不同的URL,如果不使用namespace(我这里的意思是连name都不要写),结果是相同还是不同?如果使用namespace,结果是相同还是不同?

http://img1.sycdn.imooc.com//climg/5ff12def090bc24519540534.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!对同学的疑问进行如下解答:

1、视频中说的两种角色访问不同的url,结果相同,指的是通过不同的url链接,访问到同一个页面,页面不做角色区分,结果自然是相同的,比如项目主urls.py内容如下:

http://img1.sycdn.imooc.com//climg/5e840a490978f9af00000000.jpg

auth应用的urls.py内容如下:

http://img1.sycdn.imooc.com//climg/5e840ab109a9cc7006530102.jpg

视图函数views.py代码如下:

http://img1.sycdn.imooc.com//climg/5ff193ac093a5fb005560085.jpg

那么通过auth01/index和auth02/index访问的都是auth模块views视图中的index方法,结果自然是相同的

2、auth01/index和auth02/index访问的是同一个页面,auth01和auth02可以看成是两个角色,想让页面对不同的角色做不同的处理,这个时候就可以通过解析命名空间,知道是哪个链接发来的请求,比如

view.py中index函数内容如下:

http://img1.sycdn.imooc.com//climg/5e840b8909a570a107190178.jpg

浏览器访问auth01/index的结果如下:

http://img1.sycdn.imooc.com//climg/5e840b390933bbaf05240151.jpg

访问auth02/index/的结果如下:

http://img1.sycdn.imooc.com//climg/5e840b1a097cbfd605230150.jpg

3、两种角色通过不同的URL访问同一个页面,如果不使用namespace、也不使用name,视图函数函数写法也未区分角色,结果是相同的;如果使用namespace,并且视图函数对不同的角色进行不同的处理,结果是不同的

加油,祝学习愉快~~~

  • 明月0423 提问者 #1
    老师看我理解的对不对:单纯定义命名空间是没有任何效果的,就和什么都没写一样,只有配合视图函数针对request解析到的命名空间做不同的处理,使用命名空间的效果才显现出来。另一方面定义不同的命名空间肯定对应不同的url,所以即使不定义命名空间应该也是有办法在视图函数中判断出url的区别的,只是使用命名空间判断会比较快捷方遍吧,就像使用name就可以避免去分析url的字符串了类似的效果?
    2021-01-03 18:11:54
  • 好帮手慕燕燕 回复 提问者 明月0423 #2

    同学,你好!是的,同学的理解是对的,棒棒哒,祝学习愉快~~~

    2021-01-03 19:19:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师