用Django全栈开发(进阶篇)——10. Django + Django REST framework + Ajax + Art Template实现异步加载

本文介绍了如何使用Django、Django REST framework、Ajax和ArtTemplate实现Django页面的异步加载,提升用户友好性。通过修改HTML结构,结合JavaScript文件和ArtTemplate模板,实现在页面加载完成后异步请求数据,提高加载速度。
摘要由CSDN通过智能技术生成

大家好,这是皮爷给大家带来的最新的学习Python能干啥?之Django教程的进阶版

在之前《用Django全栈开发》系列专辑里面,皮爷详细的阐述了如何编写一个完整的网站,具体效果可以浏览线上网站:Peekpa.com

从进阶篇开始,每一篇文章都是干货满满,干的不行。这一节,我们来说:如何让我们的网站对用户更加友好,不需要等待时间,利用Django REST Framework和Ajax实现。

Peekpa.com的官方地址:http://peekpa.com

获取整套教程源码唯一途径,关注『皮爷撸码』,回复『peekpa.com』

皮爷的每一篇文章,都配置相对应的代码。这篇文章的代码对应的Tag是“Advanced_10”。

在这里插入图片描述

前瞻回顾

上一节课我们已经讲述了如何使用Django REST framework来简单的实现我们的API接口,那么这一节,我们就来解决异步的问题。

不知道大家发现没有,现在几乎我们所有的CMS页面,还有我们数据中心的页面。点击逻辑基本都是点完之后,会有一个比较长的等待时间。

在这里插入图片描述

这里的时间是261ms,看似挺快,其实如果遇到数据库读取I/O拥堵,页面逻辑太过复杂,我们这里的数据时间还会更长。

我们这里的请求流程其实是下面这个样子的:

在这里插入图片描述

可以看到,请求页面,必须等到所有数据全部返回,一切都准备好之后,才会将结果返回给前端。

并不是像常规网站异步加载一样,点击之后,会有一个loading圈圈一直转,然后数据从后端返回之后在加载出来。

所以,今天我们就要使用Django + Django REST framework + Ajax + ArtTemplate 来实现Django页面的异步加载。

当然,这里小声逼逼一句,之后我们会前后端

结构介绍

上节课,我们通过Django REST framework来修改了我们的地震端口为http://127.0.0.1:8000/center/data/

在这里插入图片描述

那么我们就完全可以利用这个接口来实现异步请求。请求流程如下图:

在这里插入图片描述

可以看到,请求数据,现将页面返回,然后当页面加载完成之后,再通过Ajax调用后端接口,即上面的Json接口,在接口返回数据后,我们再将数据展示到前端。

技术要点

想要实现上面的流程,主要需要以下技术,放心,我们的文章都会介绍:

  • Django REST framework,这个主要负责实现API接口,返回Json数据;
  • Ajax,这个主要是在页面加载完成之后的数据请求;
  • Art-template,这个主要负责动态的加载展示内容,当然网上还有其他框架可以选择,这里我们就先选择这个Art Template了。

其中,第一个东西我们上节内容已经完成了。所以我们接下里就是要编写JS文件还有HTML文件了。

修改页面

我们这里就拿我们的“日本地震信息”页面来做。首先我们要将我们的页面结构修改一下,将原来的内容展示区域,换成一个loading圈:

<section class="content">
    <div class="container-fluid pt-4">
        {% include 'base/loading.html' %}
        <div class="row" id="content-block">

        </div>
    </div>
</section>

而这个loading.html是这样的:

<div class="flex-fill align-items-center justify-content-center text-center" id="loading-circle">
    <div class="spinner-border" role="status">
        <span class="sr-only">Loading...</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值