使用Django,我想创建一个网站
我还希望满足以下条件:
用一个简单的词,我要在服务器中单击并运行python脚本。我已经如下创建了按钮和调用功能脚本,但是由于返回值是1而不是呈现函数,因此它会导致错误。
我如何实现目标?
app_name / templates / app_name / index.html
<body>
<form action='some_function' method='GET'>
<button type='submit'>Click Here</button>
</form>
</body>
app_name / views.py
def some_function(request):
print("do something here")
return 1 # error is caused here but I don't want re-render
app_name / url.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.show_view, name='view'),
path('do_something', views.do_something, name='do_something')
]
谢谢!
答案 0 :(得分:4)
您可以使用AJAX异步运行python函数。如果要在单击按钮时运行python脚本,请使用“ onclick”事件监听器来调用AJAX函数。
使用您在urls.py文件中定义的URL,该视图将被异步调用。
您的HTML
^
带有JQuery的Javascript将为我们提供一种进行AJAX调用的简便方法
<body>
<input type='button' value='run function' onclick='runScript()'>
</body>
views.py
function runScript() {
$.ajax({
url: 'do_something', //The URL you defined in urls.py
success: function(data) {
//If you wish you can do additional data manipulation here.
}
});
}
如果我正确理解,您想在单击按钮且表单数据不相关时运行python代码。
如果要实际使用表单数据,则可能需要在ajax调用中使用e.preventDefault()来阻止表单提交,然后通过AJAX函数发送数据。