>  기사  >  웹 프론트엔드  >  Django에서 Ajax를 사용하는 방법

Django에서 Ajax를 사용하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-04 17:38:242496검색

이번에는 Django에서 Ajax를 사용하는 방법을 알려드리겠습니다. Django에서 Ajax를 사용할 때 주의사항은 무엇인가요?

Django는 Python으로 개발된 무료 오픈 소스 웹 사이트 프레임워크로, 고성능의 우아한 웹 사이트를 빠르게 구축하는 데 사용할 수 있습니다!

AJAX = 비동기 JavaScript 및 XML(비동기 JavaScript 및 XML).

AJAX는 새로운 프로그래밍 언어가 아니라 기존 표준을 사용하는 새로운 방식입니다.

AJAX는 전체 페이지를 다시 로드하지 않고도 서버와 데이터를 교환하고 웹 페이지의 일부를 업데이트하는 기술입니다.

Ajax

웹 페이지에서 작업을 요청할 때 페이지를 새로 고칠 필요가 없는 경우가 많습니다. 이 기능을 구현하기 위한 기술에는 Ajax가 필요합니다!

ajax는 페이지를 새로 고치지 않고도 백그라운드에 데이터를 요청하거나 제출하는 기능을 실현할 수 있습니다. 우리는 여전히 django에서 ajax를 수행하는 데 사용하므로 버전이 높을수록 좋습니다.

1. 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 아래 앱에서 views.py

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

에 의해 인쇄된 데이터 스타일:

2. Ajax는 복잡한 데이터 유형을 보냅니다.

html 코드: 여기서는 사전 데이터 유형이 포함된 목록만 보냅니다.

전송되는 데이터 유형은 목록 사전 형식이므로 미리 변환해야 합니다. 그렇지 않으면 백그라운드 프로그램에서 수신한 데이터 형식이 우리가 원하는 형식이 아니므로 ajax

<!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>

를 통해 데이터를 전송할 때 JSON이 필요합니다. django 아래 앱의 views.py

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

에 의해 인쇄된 데이터 스타일:

3. 잠깐만요, 아직 끝나지 않았습니다.

기능을 구현했지만 그다지 전문적이지 않아서 부족해서 조금 다루도록 하겠습니다.

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>

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 앱의 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')

본 글의 사례를 읽으신 후 해당 방법을 마스터하셨으리라 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트 기사에서 다른 관련 주제에 주목하세요!

추천도서:

Ajax의 원리, 장점, 단점에 대한 자세한 설명

이미지 파일 업로드를 구현하는 Ajax 및 iframe 프레임워크(자세한 그림 및 텍스트 설명)

위 내용은 Django에서 Ajax를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.