Javascript 在没有响应的情况下执行python函数-Django
我在一个项目中使用了Javascript 在没有响应的情况下执行python函数-Django,javascript,python,jquery,django,ajax,Javascript,Python,Jquery,Django,Ajax,我在一个项目中使用了Django,我需要根据用户的意愿执行一些功能。如果此操作必须返回并显示新值,我知道如何执行,但当我只想在我的views.py中执行函数时,我不需要任何响应,也不知道如何执行 现在我要做的是返回一些东西,不要使用它,但我相信不返回任何东西也可以这样做 我返回响应的代码是: $('#import_btn').click(function(){ updateData() }); function updateData(filt){ console.log('He
Django
,我需要根据用户的意愿执行一些功能。如果此操作必须返回并显示新值,我知道如何执行,但当我只想在我的views.py
中执行函数时,我不需要任何响应,也不知道如何执行
现在我要做的是返回一些东西,不要使用它,但我相信不返回任何东西也可以这样做
我返回响应的代码是:
$('#import_btn').click(function(){
updateData()
});
function updateData(filt){
console.log('Hello');
var csrftoken = $("[name=csrfmiddlewaretoken]").val();
$.ajax({
url: '/../../updateBBDD/',
type: 'POST',
headers:{"X-CSRFToken": csrftoken},
data: {
'Filt': filt,
},
dataType: "json",
cache: true,
success: function(response) {
var cols = response.Cols;
}
});
}
我必须如何在我的js
中执行python函数而没有响应
非常感谢。我觉得你把事情弄得太复杂了。是一个请求-响应协议。因此,通常情况下,每个请求后面都会有一个响应。该响应可以为空,表示问题等 因此,您可以定义一个执行某些操作并返回空值的视图函数:
#app/views.py
从django.http导入HttpResponse
定义某些视图(请求):
#…做点什么…
return HttpResponse()
您的前端代码(js)对Python一无所知—它所做的只是向给定url发送HTTP请求(当然它需要响应—这正是HTTP的基础)。这个请求实际上触发了一些Python代码的执行,这一事实是完全正交的——就js代码而言,响应也可能只是Apache或nginx等返回文件内容,或者某个代理服务器从缓存返回响应,等等
因此,在前端,js代码发送一个请求,并期望得到一个响应(无论响应内容是什么)。这会告诉j代码已经以某种方式接收并处理了请求
在Python/Django端,Django“视图”是一个“请求处理程序”——一个可调用的(函数、方法或其他),它接受传入请求并返回响应。请注意,最后一部分是必需的-如果您的视图没有返回响应,您将得到一个异常。此响应包含的内容由您决定(内容可以完全为空),但您必须返回它
请注意,即使响应内容实际上是空的,响应也始终会有一个状态代码(默认值为200),告诉客户端(您的js代码或其他代码)请求是否得到了“正确”处理,或者是否出现了任何错误。因此,您可能不想在客户端代码中忽略响应的状态代码(至少),也不想盲目地返回一个200,不管后端发生了什么-如果某些事情没有按预期工作,您肯定要通知用户
考虑到你的问题,我强烈建议你。在不了解协议的情况下尝试进行web编程不会产生很好的结果 您只需返回一个空响应,类似于
returnhttpresponse()
。每个HTTP请求后面都应该有一个(可能是空的)HTTP响应?请注意,如果您不发送响应,浏览器将感到悲伤和孤独。(除非你设法切断TCP连接,但我不认为Django会暴露它。)“就你的js代码而言,响应也可能是……”甚至是坐在sudo nc-l 80上的黑客手动键入响应:
# app/views.py
from django.http import HttpResponse
def some_view(request):
# … do something …
return HttpResponse()