当前位置: 首页 > 编程笔记 >

Django中的Ajax

姬熙云
2023-03-14
本文向大家介绍Django中的Ajax,包括了Django中的Ajax的使用技巧和注意事项,需要的朋友参考一下

Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

Ajax

  很多时候,我们在网页上请求操作时,不需要刷新页面。实现这种功能的技术就要Ajax!

jQuery中的ajax就可以实现不刷新页面就能向后台请求或提交数据的功能,我们仍然用它来做django中的ajax,所以先把jquey下载下来,版本越高越好。

一、ajax发送简单数据类型:

html代码:在这里我们仅发送一个简单的字符串

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-">
<title></title>
</head>
<body>
<input type="button" onclick="AjaxSubmit();" value="提交">
<script src="/static/jquery-...min.js"></script>
<script>
function AjaxSubmit(){
var host = '...';
var port = '';
$.ajax({
url:"/app/ajax_submit/",
type:'POST',
data:{host:host,port:port},
success: function (arg) {
}
});
}
</script>
</body>
</html> 

django下app里views.py

# coding:utf-8
from django.shortcuts import render,HttpResponse
def ajax_submit(request):
print request.POST #客户端发来的数据
return render(request,'ajax_submit.html') 

打印出来的数据样式:

 

二、ajax发送复杂的数据类型:

html代码:在这里我们仅发送一个列表中包含字典数据类型

由于发送的数据类型为列表 字典的格式,我们提前要把它们转换成字符串形式,否则后台程序接收到的数据格式不是我们想要的类型,所以在ajax传输数据时需要JSON

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-">
<title></title>
</head>
<body>
<input type="button" onclick="AjaxSubmit_set();" value="提交集合">
<script src="/static/jquery-...min.js"></script>
<script>
function AjaxSubmit_set(){
var data_list = [
{'name':'chenchao','age':},
{'name':'lisi','age':},
{'name':'wangwu','age':}
];
$.ajax({
url:"/app/ajax_submit_set/",
type:'POST',
tradition:true, 原生模式
data:{data:JSON.stringify(data_list)},
success: function (arg) {
}
});
}
</script>
</body>
</html> 

django下app里views.py

def ajax_submit_set(request):
print request.POST
return render(request,'ajax_submit.html') 

打印出来的数据样式:

 

三、稍等、还没完。

虽然我们实现了功能,但这还不够,因为显得不是很专业,所以我们稍作处理。

success: function (arg) { } 如果ajax提交数据成功,那么就会自动执行这里面的函数

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-">
<title></title>
</head>
<body>
<input type="button" onclick="AjaxSubmit();" value="提交">
<input type="button" onclick="AjaxSubmit_set();" value="提交集合">
<script src="/static/jquery-...min.js"></script>
<script>
function AjaxSubmit(){
var host = '...';
var port = '';
$.ajax({
url:"/app/ajax_submit/",
type:'POST',
data:{host:host,port:port},
success: function (arg) {
}
});
}
function AjaxSubmit_set(){
var data_list = [
{'name':'chenchao','age':},
{'name':'lisi','age':},
{'name':'wangwu','age':}
];
$.ajax({
url:"/app/ajax_submit_set/",
type:'POST',
tradition:true,
data:{data:JSON.stringify(data_list)},
success: function (arg) { //如果程序执行成功就会执行这里的函数
var callback_dic = $.parseJSON(arg);
if(callback_dic.status){ 
alert('成功');
}else{
alert(callback_dic.error); //把错误的信息从后台提出展示出来
}
}
});
}
</script>
</body>
</html> 

django下app里views.py

# coding:utf-
from django.shortcuts import render,HttpResponse,redirect
def ajax_submit(request):
print request.POST
return render(request,'ajax_submit.html')
import json
def ajax_submit_set(request):
ret = {'status': True,'error': ""}
try:
print request.POS
except Exception, e:
ret['status'] = False
ret['error'] = str(e)
j_ret = json.dumps(ret)
return HttpResponse(j_ret)

Django中ajax的使用

前端的ajax代码如下所示:

$.ajax({
type:'GET',
url:'/store/ds_mgmt_wx/ajax_handle',
dataType:'html',
success:function(data)
{
alert(data);
},
error:function(data)
{
alert(data); 
}
});

后端的相应代码的返回方法如下:

if act_job == 'ajax_handle':
return HttpResponse('ajax_handle')

关于Django中的Ajax小编就给大家介绍到这里,希望对大家有所帮助!

 类似资料:
  • 问题内容: 我在执行get请求而不是在post请求期间收到此 错误 。 错误:- / StartPage /处的MultiValueDictKeyError 请求方法:GET请求URL: Django版本:1.4异常类型:MultiValueDictKeyError异常值: “在“中找不到密钥’用户名’ views.py urls.py main_page.html Start_Page.html

  • 问题内容: 所以我有个约会模特 我想在工具中实现这一点。我不确定如何开始。任何帮助表示赞赏。谢谢。 问题答案: 由于您的问题表明您没有尝试过任何东西,因此猜测您知道javascript,并尝试了一些完整的日历js。 假设您有一个名为Event的模型,用于在日历中显示不同的事件。 在您的views.py中 最后在模板中设置完整日历,其中包括必要的CSS,JS文件和HTML代码。然后, 动态地处理某些

  • 本文向大家介绍Django中的ajax请求,包括了Django中的ajax请求的使用技巧和注意事项,需要的朋友参考一下 需求:实现ajax请求,在界面上任意地方点击,可以成功传参。 创建项目如下所示: settings.py文件的设置,这次我们除了要注册app和设置templates文件夹的路径,还要多设置一下static的路径,代码如下: 首先,先对界面做处理,设置高为100%,然后引入我们所需

  • 问题内容: 用作所有其他页面的基本模板。有导航栏,在导航栏中,我想显示用户收到的消息数。因此,我需要有一个变量一样的。 但是,应如何将此变量传递给它?每个模板都会扩展并由一个函数呈现。我认为返回所有函数不是一个好方法。有更好的方法来实现这一点吗?如何将此变量传递给所有模板? 问题答案: 看看: https //docs.djangoproject.com/en/dev/ref/templates/

  • 问题内容: 在我的应用程序中,当保存模型时,我需要保存更改的值(旧值和新值)。任何示例或工作代码? 我需要这个来预审内容。例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们。 问题答案: 您还没有对您的特定用例或需求说太多。特别是,了解更改信息(需要存储多长时间?)将很有帮助。如果仅出于临时目的而存储它,@ S.Lott的会话解决方案可能是最好的。如果

  • Django所有地方都原生地支持Unicode数据。只要你的数据库能存储数据,你就可以安全地把Unicode字符串传递到模板、模型和数据库中。 本文档告诉你如果当你写用到非ASCII的数据或者模板的应用时,你需要知道什么。 创建数据库 确认你的数据库配置可以存储任意字符串数据。一般来讲,这意味着给它一个UTF-8或者UTF-16的编码方式。如果你用了更具约束性的编码 – 例如latin1 (iso

  • 问题内容: 无论如何,在Django中是否可以为双外键建模? 例如,如果我有以下表格:音频,覆盖,html和表格:timeline_item,它具有一个字段ID,以及一个指定音频,覆盖或html的字段类别… 有谁知道我将如何在Django中进行建模?甚至有可能吗? 问题答案: 听起来像是多态关联。也许您可以使用ContentTypes框架解决Django通用关系的问题。

  • 问题内容: Django视图指向一个函数,如果您只想更改一些功能,则可能会出现问题。是的,函数中可以有数百万个关键字参数,如果有语句,甚至可以更多,但是我在想更多的面向对象方法。 例如,我有一个显示用户的页面。该页面与显示组的页面非常相似,但仍与仅使用另一个数据模型不太相似。小组也有成员等… 一种方法是将视图指向类方法,然后扩展该类。有没有人尝试过这种方法或有其他想法? 问题答案: 我已经创建并使