【实测】django测试平台必看:各种请求方式的利弊和适用场景

94 阅读3分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

有很多同学初学django做平台会出现请求问题,比如:

增加一个元素,增加后,刷新页面发现又多了一个元素,不明所以。

所以今天我就用土方法经验来给大家讲讲各种返回方式吧,请仔细看,并保存成书签哦~ 

第一种

通过url输入或者a标签href的方式请求,并且返回页面。

【例子】:登录页面

【后代代码】:

图片

使用方法:通过url请求,当使用者浏览器地址栏出现:

图片

的时候,就进入了这个页面。

【特点】:返回的是一整个页面,浏览器会直接显示当前页面。

【常用】:页面跳转/打开 等。

【后遗症】:浏览器地址栏会变成这个url,如果刷新会重新进行请求此url,重新加载这个页面。

图片

第二种

通过url输入或者a标签href的方式请求,但返回的是welcome.html并嵌套子页面的情况。

【例子】:首页

【后代代码】:

图片

使用方法:通过url、a标签超链接等请求,当使用者浏览器地址栏出现:

图片

的时候,就进入了这个嵌套页面,这个页面的外壳是菜单,里子是首页。

【特点】:返回的是一整个页面,浏览器会直接显示当前页面,逻辑很复杂,为接口测试平台独创,有利于集中处理页面数据分类。

【常用】:页面跳转/打开 等。

【后遗症】:浏览器地址栏会变成这个url,如果刷新会重新进行请求此url,重新加载这个页面。

图片

第三种

通过url输入或者a标签href的方式请求,但返回重定向到了另一个url。

【例子】:退出登录

【解释】:完成了退出功能后,必须要返回到登录页,所以可以直接重定向到登录页面的Url。

【后代代码】:

图片

使用方法:通过url、a标签超链接等请求,当使用者浏览器地址栏出现:

图片

的时候,就完成了这一系列功能,并且进行重定向到另一个url:

图片

【特点】:请求时的url和最后浏览器地址栏的url不同,可以极大避免重复刷新带来的bug,比如文章开头说的bug,就是因为没有使用这种方式,导致添加元素后,浏览器地址栏没有重定向到正常url而保留了/add/地址,那么刷新页面就会导致重新请求,所以此方式可以避免这种bug,可以把返回结果强行重定向到刚进入列表页的url。

图片

【常用】:页面跳转/打开/保存/刷新等。

第四种

通过各种bom的http协议接口进行请求,请求成功后不触发页面刷新。

【例子】:删除项目

【前端代码】:

图片

【后代代码】:

图片

【特点】:浏览器地址栏不会有任何变化,页面也不会刷新,这样保证了你即便手动刷新页面也不会重复触发这个功能。从network面板可以看到发出了这次接口请求

图片

【常用】:无关页面跳转的数据增删改查等。

【后遗症】:页面因未刷新,会导致一开始带进来的数据展示没有更新,比如这个删除了项目,但项目列表仍然无法看到此项目被删除,所以在js中的接口成功后动作中加上了手动触发刷新页面。这样即保证了页面刷新重新加载最新数据,又保证了浏览器地址栏无变化,简直骚到起飞~

图片

【扩展】:如果想在js中强行更改地址栏,可以用

        document.loaction.href='/目标地址/'

这样也可以起到重定向的效果....

    欢迎小伙伴转发,关注。