从HTML按钮点击执行Python / Django函数
问题
怎样通过HTML按钮来执行Django的view.py中的打印函数?
场景
我在项目的前端有一个开始按钮,用户点击后应该会引导他们完成几个调查任务。这些任务是随机选择的,不过一旦某个任务完成了50次,就会从任务列表中移除。
目前我只是想让下面的函数在终端打印数字8,这算是我学习如何根据用户在前端的操作来调用/执行Django/Python函数的第一步。
我看过这里的几个问题,包括Django:如何从模板调用视图函数?,这些建议是把按钮放在一个表单里,但我似乎无法让任何答案生效。我更希望不把任何逻辑放到HTML页面里。
这是我目前的尝试。现在它没有在终端打印任何内容。
前端的HTML(使用Bootstrap)
<form method="get">
<input type="submit" value="START" name="mybtn" id="start_submit" class="btn btn-success"/>
</form>
打印函数在views.py里
def request_page(request):
if(request.GET.get('mybtn')):
counter = 8
print counter
return render_to_response('selected_path.html')
我现在面临的整体问题是,我到目前为止在Django/Python中学到的所有东西都涉及创建各种函数,然后简单地在HTML页面中添加必要的模板标签来显示内容或交互元素。我只是搞不清楚如何反过来做,构建前端功能来调用后端……我希望这样说能让你明白。
谢谢
1 个回答
4
你需要知道的大部分内容在你提到的问题的第一个回答里已经解释得很清楚了。唯一缺少的就是url
的声明部分,这个部分是用来把视图和一个网址绑定在一起的(就像官方的Django教程里说的那样)。顺便提一下,你不能直接通过点击HTML按钮来“调用一个Python函数”,你能做的就是向一个网址发送请求(比如获取数据或提交数据等),然后这个请求会被路由到一个视图函数。