分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Django以ajax方式提交form

发布时间:2023-09-06 02:33责任编辑:白小东关键词:暂无标签

view.py

def ajax(request): ???if request.method == ‘GET‘: ???????obj = AjaxForm() ???????return render(request,‘ajax.html‘,{‘obj‘:obj}) ???else: ???????ret = {‘status‘:‘no‘,‘message‘:None} ???????import json ???????obj=AjaxForm(request.POST) ???????if obj.is_valid(): # 这里开始做的数据验证 ???????????ret[‘status‘] = ‘yes‘ ???????????print(obj.cleaned_data) ???????????# 跳转,ajax方式提交不会直接跳转,需交给js处理 ???????????# return redirect(‘http://www.baidu.com‘) ???????????return HttpResponse(json.dumps(ret)) ???????else: ???????????print(obj.errors) ?# json.dumps里传python的基本数据类型,ErrorDict是继承dict的 ???????????print(type(obj.errors)) # <class ‘django.forms.utils.ErrorDict‘> ???????????ret[‘message‘] = obj.errors ???????????# 错误的信息显示在页面上 ???????????return HttpResponse(json.dumps(ret))

form类

html

<body><form id="fm" action="/ajax/" method="post" novalidate> ???{% csrf_token %} ???<p>{{ obj.username.label }}:{{ obj.username }}</p> ???<p>{{ obj.user_id.label }}:{{ obj.user_id }}</p> ???<input type="button" value="Ajax提交" id="btn"></form><script src="/static/js/jquery-3.3.1.js"></script>‘<script> ???$(function () { ???????$(‘#btn‘).click(function () { ???????????$.ajax({ ???????????????url:‘/ajax/‘, ???????????????type:‘POST‘, ???????????????data:$(‘#fm‘).serialize(), ???????????????dataType:‘JSON‘, ???????????????success:function (arg) { ???????????????????//arg:需包含状态信息,错误信息 ???????????????????if(arg.status == ‘yes‘){ // 跳转 ???????????????????????window.location.href="http://www.baidu.com" ???????????????????} ???????????????????console.log(arg) ???????????????} ???????????}) ???????}) ???})</script></body>

Django以ajax方式提交form

原文地址:https://www.cnblogs.com/zq8421/p/10439299.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved