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

大家好,这是皮爷给大家带来的最新的学习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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是说找不到名为 "rest_framework/api.html" 的模板文件。可能是因为你的 Django 项目中没有这个模板文件,或者模板文件的路径设置不正确。你需要检查一下你的模板文件路径设置是否正确,并且确保这个模板文件存在于正确的路径下。 ### 回答2: django.template.exceptions.templatedoesnotexist: rest_framework/api.html 是一个Django模板引擎错误。它表示Django无法找到rest_framework应用程序中的api.html模板文件。 这是因为rest_framework未在Django项目中注册或安装。该错误通常出现在使用Django REST框架的项目中,但未正确配置。 要解决此错误,需要执行以下步骤: 1. 确认已经安装了Django REST框架,并将其添加到INSTALLED_APPS列表中。你可以在settings.py文件中找到这个列表。 2. 检查settings.py文件中的TEMPLATES设置,确保Django REST框架的模板路径正确设置。 3. 如果还是无法解决问题,可以试着手动添加api.html文件到Django项目的模板目录中,并确保其路径也正确。 总之,django.template.exceptions.templatedoesnotexist: rest_framework/api.html是Django模板引擎错误,通常可以通过检查Django REST框架的注册和配置来解决。 ### 回答3: 这个错误提示是Django中常见的模板错误,它通常意味着Django无法找到特定的模板文件。其中“rest_framework/api.html”是指Rest_framework框架中的一个API模板文件。 这个错误通常是由于以下原因引起的: 1. 模板文件路径不正确。Django将自动搜索应用程序和模板目录的默认位置,并查找与视图名称匹配的模板文件。如果找不到模板文件,则会导致此错误。 2. 模板名称不正确。如果模板名称错误,Django将无法找到模板文件并引发此错误。因此,必须确保视图中使用的模板名称与模板文件名称匹配。 3. 模板文件没有在模板目录中。可能是因为模板文件被误删或移动。因此,需要确认模板文件是否存在,并且它位于正在使用的模板目录中。 解决此错误的方法是检查模板文件的路径,名称和位置。您可以在视图中使用正确的模板名称或使用特定的模板目录来指定模板位置。另外,确保模板文件存在于正确的位置并且文件名拼写正确。 总之,这个错误是一个简单的模板错误,通过仔细检查代码,可以轻松解决。一旦找到错误并纠正,Django就可以正确访问特定的API模板并返回正确的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值