Django+JQuery实现定时刷新局部页面

简介

在做“弹幕弹幕”小程序管理员前端时,需要在页面上不断更新弹幕列表,方便管理员对弹幕进行审核。之前用flask框架可以使用主动推送的方式更新前端页面,但是Django框架要实现主动推送是比较复杂的,于是我们最后使用了轮询的方式进行页面更新。

实现方法

项目架构(部分目录)

.
├── organizer/
|    ├── views.py
|    └── urls.py
└──  templates/
      ├── barrages_list.html
      └── barrages_refresh.html

实现原理

前端页面通过JQuery定时向后端发送GET请求,获取最新的数据库数据之后,更新局部页面的内容。

代码实现

1、barrages_list.html中的主要代码:

    2、barrages_refresh.html中的主要代码:

    {% for barrage in data %}
      
  • {{ barrage.content }}

  • {% endfor %}

    3、views.py中的主要代码:

    class BarragesRefresh(APIView):
        def get(self):
            self.template="organizer/barrages_refresh.html"#渲染的模板
            self.check_input('activity_id')
            activity_id = self.input['activity_id']
            barrages = Barrage.objects.filter(activity_id=activity_id, has_checked_manually=False)
            barrages = list(barrages.values("id", "type","content", "openid", "screen_id"))
            return barrages
    

    4、urls.py中的主要代码:

    urlpatterns = [
        url('barrages/refresh', BarragesRefresh.as_view(),name='barrages_refresh'),
    ]
    

    你可能感兴趣的:(Django+JQuery实现定时刷新局部页面)