Django当中request.path, request.path_info, get_full_path方法的区别

url :  http://127.0.0.1:8001/rbac/role/edit/?page=2

1.request.path:

   request.path仅提供相对于根目录的url相对路径,不包含参数。它的输出是一个字符串,结果如下所示:/rbac/role/edit/

2.request.path_info:

  request.path_info也仅提供相对于根目录的url相对路径,不包含参数。它的输出也是一个字符串,与request.path相同:/rbac/role/edit/

二者区别在于哪儿?

Django推荐使用request.path_info获取不含参数的相对urls路径。这是为什么呢?

大部分情况下request.path_info和request.path的输出结果是一样的。但是如果你的WSGI服务器设置了WSGIScriptAlias(应用程序的假名, 比如myapp), 那么request.path将输出/myapp//rbac/role/edit/,而request.path_info的输出结果更准确,依然为/rbac/role/edit/

3.request.get_full_path():

  该方法用于获取包含完整参数的相对于根目录的相对url路径。它的直接输出内容是个WSGI请求对象。如果要获取字符串形式的完整url路径,一定要不要忘了在后面加括号。request.get_full_path()的输出结果为:/rbac/role/edit/?page=2。

4.request.build_absolute_url():

  该方法用于获取带域名的url绝对路径, 也是一个字符串,如下所示。千万别忘了加括号。request.build_absolute_url()的输出结果为:http://127.0.0.1:8001/rbac/role/edit/?page=2。

 

 

                                 转自于 https://blog.csdn.net/LiangLoveJava/article/details/115372116

posted on 2022-07-27 13:37  一先生94  阅读(571)  评论(0编辑  收藏  举报

导航