Django+Ajax异步刷新/定时自动刷新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

分享一下最近在学习Django过程中,遇到和解决的一些有趣的方法和问题


一、Django是什么?

Django也不用在过多的去介绍了。使用python进行web开发的基本上都在用着框架,反正大家都在用,哈哈哈

二、Ajax异步刷新

1.jQuery语法下的Ajax运用

代码如下(示例):

  $.ajax(
            {
                type:"GET",
                url:"/ajax_loadavg",
                dataType:"json",
                success:function (data) {
                    json_data = data
                    }

当然大家别忘了在页面引入jQuery的源

<script src="{% static 'Privilege/vendor/jquery/jquery.min.js'%}"></script>

通过这种方式,可以实现异步数据更新,做到只刷新部分页面而不需要整个页面进行刷新!!!

2.定时刷新页面的样例

这里面使用chartist响应式图标作为案例,设定每15s中对图表进行一次刷新。

HTML5代码示例如下:

<div id="headline-chart" class="ct-chart"></div>

jQuery代码示例如下:

 setInterval(function () {
  $.ajax(
            {
                type:"GET",
                url:"/ajax_loadavg",
                dataType:"json",
                success:function (data) {
                    json_data = data
                   
			data = {
				labels: [0, 10, 20, 30, 40, 50, 60],
				series: [
                	[1, 2, 3, 4, 0, 0, 0],
					[0, 0, 0, 0, 0, 0, 0],
                	[0, 0, 0, 0, 0, 0, 0],
				]
			};

			options = {
				height: 300,
				showArea: true,
				showLine: false,
				showPoint: false,
				fullWidth: true,
				axisX: {
					showGrid: false,
               	 showLabel: false
				},
				lineSmooth: false,
				};

			new Chartist.Line('#headline-chart', data, options);
		 }
		 },15000)

Django 视图(view)代码如下:

注意:此处只是展示Ajax与Django如何进行交互,Ajax获取的JSON数据并未进行利用!

@csrf_exempt
def ajax_loadavg(request):
    if request.method == 'GET':
        context = {'output_loadavg':output_loadavg}
        return HttpResponse(json.dumps(context))

url配置

path('ajax_loadavg/', views.ajax_loadavg, name='ajax_loadavg'),

3.展示效果

可以替换series部分的数据,进行展示


总结

感兴趣的小伙伴可以参看,也希望有想法的小伙伴,评论区多多发表意见!!!

Chartist图表官网链接

http://gionkunz.github.io/chartist-js/

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些指导。 首先,您需要使用 Django 框架来搭建您的网站。您可以先安装 Django,然后创建一个新的 Django 项目。 接着,您可以创建一个注册和登录的应用。在这个应用中,您可以创建一个名为 `views.py` 的文件,用于处理用户注册和登录的请求。您可以使用 Django 自带的表单验证来验证用户输入的信息是否正确。 在用户注册时,您需要从前端页面获取用户输入的信息,并将其保存到数据库中。在用户登录时,您需要从前端获取用户输入的用户名和密码,并将其与数据库中的信息进行验证。 对于登录和注册,您可以使用 ajax 技术,从前端向后端发送异步请求来进行处理。在 `views.py` 中,您可以使用 Django 的 `JsonResponse` 对象来返回处理结果。 下面是一个简单的示例代码: ```python from django.shortcuts import render from django.http import JsonResponse from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User def register(request): # 获取用户输入的信息 username = request.POST.get('username') password = request.POST.get('password') email = request.POST.get('email') # 创建新用户并保存到数据库中 user = User.objects.create_user(username=username, password=password, email=email) user.save() # 返回处理结果 return JsonResponse({'status': 'success'}) def login(request): # 获取用户输入的信息 username = request.POST.get('username') password = request.POST.get('password') # 验证用户名和密码是否正确 user = authenticate(request, username=username, password=password) if user is not None: # 登录成功 login(request, user) return JsonResponse({'status': 'success'}) else: # 登录失败 return JsonResponse({'status': 'fail'}) ``` 在前端页面中,您可以使用 jQuery 来向后端发送异步请求,并处理返回的结果。 下面是一个简单的示例代码: ```html <form id="register-form"> <input type="text" name="username"> <input type="password" name="password"> <input type="email" name="email"> <button type="submit">注册</button> </form> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { $('#register-form').submit(function(event) { event.preventDefault(); var form_data = $(this).serialize(); $.ajax({ url: '/register/', type: 'POST', data: form_data, dataType: 'json', success: function(data) { if (data.status === 'success') { alert('注册成功'); } else { alert('注册失败'); } } }); }); }); </script> ``` 类似地,您可以创建一个登录的表单,并使用类似的方式进行处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值