如何在javascript中运行python脚本并在django中刷新视图
我有一个python脚本,它接收一些数据并对其进行操作。但是,我需要它在javascript内部的客户端上运行,以处理一些数据并刷新视图 操纵数据的python文件工作得很好,我已经在空闲shell中对其进行了测试如何在javascript中运行python脚本并在django中刷新视图,javascript,python,django,web,Javascript,Python,Django,Web,我有一个python脚本,它接收一些数据并对其进行操作。但是,我需要它在javascript内部的客户端上运行,以处理一些数据并刷新视图 操纵数据的python文件工作得很好,我已经在空闲shell中对其进行了测试 DataManipulation.py class ModifyData(object): #Bunch of functions to manipulate data 下面是用于使用url“…/test”呈现视图的函数,该函数也非常有效 views.py
DataManipulation.py
class ModifyData(object):
#Bunch of functions to manipulate data
下面是用于使用url“…/test”呈现视图的函数,该函数也非常有效
views.py
def test(request):
template = 'app/test.html'
file = 'documents/Sample.csv' #File to be loaded
args = {'test': file }
return render(request, template, args)
加载此页面后,我使用一个javascript库在表中显示页面上的数据,然后用户可以像将列乘以3那样操作数据,但是我遇到的难题是如何使用我的DataManipulation.py文件修改数据,并使用按钮上的更新列更新页面。我认为您应该将数据传递到模板中,然后使用
javascript
操作数据,然后您可以使用ajax
更新页面而无需刷新,例如:
<!--html-->
<button onclick="deleteUser({{ request.user.pk }})">Submit</button>
<!---->
function deleteUser(userid) {
var post_data = {
'userid': userid,
}
$.ajax({
type: "POST",
url: "/deleteuser",// the view function to post
data: post_data,
contentType: 'application/json;charset=UTF-8',
success: function(result) {
// do something after post
...
}
});
}
我认为您应该将数据传递到模板中,然后使用
javascript
操作数据,然后您可以使用ajax
在不刷新的情况下更新页面,例如:
<!--html-->
<button onclick="deleteUser({{ request.user.pk }})">Submit</button>
<!---->
function deleteUser(userid) {
var post_data = {
'userid': userid,
}
$.ajax({
type: "POST",
url: "/deleteuser",// the view function to post
data: post_data,
contentType: 'application/json;charset=UTF-8',
success: function(result) {
// do something after post
...
}
});
}
因为执行python客户端不是一个选项,所以有两个选项
- 使用客户端JS向服务器发出ajax请求
- 让服务器调用ModifyData,然后将数据返回到客户端
- 让客户端使用新数据更新视图
我建议您将python代码移植到JS,但如果不可能,那么#2将始终有效。如何实现将取决于如何管理客户机中的数据 因为执行python客户端不是一个选项,所以有两个选项
- 使用客户端JS向服务器发出ajax请求
- 让服务器调用ModifyData,然后将数据返回到客户端
- 让客户端使用新数据更新视图
我建议您将python代码移植到JS,但如果不可能,那么#2将始终有效。如何实现将取决于如何管理客户机中的数据 如果此应用程序使用浏览器,您将无法提供服务,然后执行python脚本。浏览器安全性防止了这种情况。如果这是一个electron或nwjs应用程序,则可以执行上述操作。如果此应用程序使用浏览器,则无法提供服务,然后执行python脚本。浏览器安全性防止了这种情况。如果这是一个electron或nwjs应用程序,那么上述内容是可能的。你是说我根本不能使用我的python脚本,为什么要复制脚本来删除用户?这个问题用django标记
$
属于用于路由的正则表达式。你是说我根本不能使用python脚本,为什么要复制脚本来删除用户?问题被标记为django<代码>$属于用于路由的正则表达式。