基本路由映射;命名空间;正则路由映射传参和接收

基本主从路由映射

在Django项目中,我们有主urls文件,还有子项目user中的urls文件。在两个文件中,都有相应的path路径。
在这里插入图片描述
那么主urls文件中的user/就构成了网址host地址/user/。
在这里插入图片描述
子项目中的urls文件中的path的第一个参数,就构成了user/后面拼接的内容。那么,这两个urls文件中的路径拼接,才会有完整的网址去访问views py文件中的相应函数。得到相应的返回值。
这就是一个基本的主从路由映射(关联起网址和视图函数的关系)。

命名空间

就是为视图处理器起一个名字。
在这里插入图片描述
在这个代码截图中,出现了第三个参数,name=’index’。它的意思是,为之前的路由映射(拼接的网址指向了一个视图函数)起了一个名字。
问题是:Django框架下可以有不同的子项目,虽然我们可以使用host地址/user和host地址/goods这种方式来区分,但是在通过视图的反转,想要根据name名字找到对应的URL地址和相应的视图函数的时候,就会有问题。
所以我们在主的URL文件中,加入了namespace这个参数。
在这里插入图片描述
那么在子的URL文件中,我们可以随便命名,任何一个命名的前缀都会自动加上user:index或者goods:index。
#Django2.2版本的namespace的添加需要遵从上图中的格式。

正则路由映射传参和接收

正则:匹配字符串的一种规则。

在这里插入图片描述
正则表达式三步:1,在子url文件中,导入正则模块re_path。2,生成相应路径re_path(),第一个参数代表匹配什么样的字符串,\d+表示长度>=1的数字。
然后,3,views文件,处理器中,接收相应的参数。
在这里插入图片描述
正则与普通path的区别:我在host地址/user/后输入任何的符合第一个参数要求的字符串,那么视图函数都会在网页上反馈给我。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了11 篇原创文章 · 获赞 0 · 访问量 119

猜你喜欢

转载自blog.csdn.net/weixin_45620570/article/details/104049013