Django使用Ajax异步传输数据 将后端字符串、列表、字典格式数据填充到前端
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def get_data(request):
# 假设这里有一些处理逻辑
my_string = "Hello, World!"
my_list = [1, 2, 3, 4, 5]
my_dict = {'key1': 'value1', 'key2': 'value2'}
# 将数据打包成一个字典
data = {
'my_string': my_string,
'my_list': my_list,
'my_dict': my_dict
}
# 使用JsonResponse返回数据
return JsonResponse(data)
前端JavaScript代码使用jQuery的$.ajax
方法来发送请求并处理响应:
$.ajax({
url: '/get_data/', // 假设这是后端视图的URL
type: 'POST', // 根据后端视图的设置可能是'GET'或'POST'
data: {'csrfmiddlewaretoken': '{{ csrf_token }}'}, // 如果使用了CSRF保护,需要发送CSRF token
success: function(response) {
// 成功获取数据后的回调函数
console.log(response.my_string); // 输出: Hello, World!
console.log(response.my_list); // 输出: [1, 2, 3, 4, 5]
console.log(response.my_dict); // 输出: {'key1': 'value1', 'key2': 'value2'}
},
error: function() {
// 请求失败的回调函数
console.log('Error fetching data');
}
});
确保在HTML文件中包含了jQuery库,并且在Django模板中正确地渲染了{% csrf_token %}
标签。这样就可以实现后端向前端异步传输数据的功能。
评论已关闭