************************************************************************************************************************************************************************************************************************

-------------------------------------------------------------------------------------------------------==☆==--------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------元亨利贞--------------------------------------------------------------------------------------------------------------

*************************************************************************************************************************************************************************************************************************

一、在模板中使用url

1、绝对地址

  即将需要跳转的url完整地写在模板中。当用户点击此链接时,将直接访问完整的url地址。例如:http://127.0.0.1:800/page/1

2、相对地址

(1)相对地址以 ‘ / ’ 开头,例如‘/page2/2’。浏览器会将当前地址栏里面的协议、ip、端口加上这个地址作为最终的访问你地址。例如,假设当前页面地址栏中的内容为:http://127.0.0.1:8000/page1/1。相对地址内容为 ‘/page2/2’,则当用户点击此连接时,浏览器会跳转至地址:http://127.0.0.1:8000/page2/2。

(2)相对地址不以 ‘ / ’开头。浏览器会将当前url最后一个/之前的内容加上该相对地址,作为最终访问地址。例如,假设当前页面地址栏中的内容为:http://127.0.0.1:8000/page1/1。相对地址内容为 ‘page2/2’,则当用户点击此连接时,浏览器会跳转至地址:http://127.0.0.1:8000/page2/page2/2。

3、三种地址访问实战

(1)在模板中构建三种不同的地址。

(2)构建相应的视图函数

(3)在路由中绑定相应的视图函数

(4)测试

主页面

点击绝对地址

点击带/的相对地址

点击不带/的相对地址

从测试结果来看,都可以正常地跳转。

二、url的反向解析

1、定义

2、作用:即通过url的别名来进行关联,不用再去考虑是通过绝对地址还是相对地址来绑定,可以简化开发流程。

3、使用方法

  通过在模板中直接调用地址的别名,如果需要传参则直接传递即可。如下所示。

4、实战

(1)在视图函数中定义别名

(2)在模板中调用别名

(3)测试

点击“反向解析的地址”,跳转成功。

4、优势

  即使路由地址发生改变,只要别名不发生改变,则视图函数和模板中的地址不用发生任何改变,可以实现动态地获取最新的地址路由。

三、在视图函数中使用url反向解析

1、在视图函数中使用反向解析与在模板中使用类似,但是需要借助django的包文件实现。

使用方法如下。

2、实战

(1)在路由中定义一个别名。例如以上次创建的音乐和体育网站作为对象。

(2)在视图函数中添加资源重定向的逻辑,并指定重定向的路径是(1)中绑定的路由。

(3)测试

点击“反向解析的地址”

  成功跳转至之前设定的页面。

3、在视图函数中运用url反向解析技术,主要用来进行资源的重定向(302跳转)。

************************************************************************************************************************************************************************************************************************

-------------------------------------------------------------------------------------------------------==☆==--------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------元亨利贞--------------------------------------------------------------------------------------------------------------

*************************************************************************************************************************************************************************************************************************

最新文章

  1. Effective C++ -----条款47:请使用traits classes表现类型信息
  2. Nginx php-fpm php mysql
  3. swift1.2语言函数和闭包函数介绍
  4. js笔记----(运动)淡入淡出
  5. EditorWindow窗口大小锁死后没有边框的解决方法
  6. [转载] tcp那些事1
  7. iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
  8. Swipe2.1更新——移动Web内容滑块
  9. hadoop备记
  10. The Greate Wall 相关网络知识(一)域名劫持
  11. qsort函数的简单实践
  12. 通过匹配绑定select option的文本值 模糊匹配
  13. 2^x mod n = 1(hd1395)
  14. Java采用HttpClient对于Web登录
  15. Eclipse perl的IDE环境插件-EPIC
  16. 【动态规划】洛谷P1006传纸条
  17. c++ 如何获取多线程的返回值?
  18. React Native实现一个自定义模块
  19. ExcelDna项目完整工程演示及讲解
  20. History of program(1950-2020)

热门文章

  1. NVIDIA的GPU算力Compute Capalibity
  2. SED fitting
  3. Mamba安装
  4. 关于watch
  5. ideavimrc 示例
  6. Advent of Code 2015: Day 10
  7. Dynamics 365 登录后网页显示空白
  8. Vue 更改数组中的值,页面不刷新问题。解决方法+原理说明
  9. linux-添加磁盘-MBR分区-挂载
  10. Win10 ISS Web服务器安装与部署