RT,在前端页面( index.html )中创建两个按钮,点击 load 或者 save 按钮都需要 flask 后台框架来响应执行操作,点击两个按钮后不跳转页面(或者跳转后的页面仍然为 index.html ),也就是说两个按钮对应的 url 都是'/'
,那么问题来了,flask 后台框架怎么在 url 为'/'的方法中区分这两个按钮哪个被按下呢?
index.html:
<button class="btn btn-default btn-primary" name="load">Load</button>
<button class="btn btn-default btn-info" name="save">Save</button>
@app.route('/')
def index():
pass #问题就是需要在这里区分两个按钮谁被按下了
希望各位大大不啬赐教,在此先谢谢了!
1
Kilerd 2017-08-13 17:55:17 +08:00 via iPhone
先去学学 flask 怎么处理 form 内容的,再来问问题
|
2
learnshare 2017-08-13 17:56:33 +08:00
Ajax
|
3
SeanChense 2017-08-13 17:57:55 +08:00
|
4
whutgeek OP @learnshare 谢谢!前台通过 jquery 获取到被点击按钮的 name 属性,然后通过 ajax 传送到后端,然后再在 index 函数里面判断:
``` <script> var data = {} data['button'] = value ... $.ajax({ type: 'POST', url: /, data: data, dataType: 'json', success: function(data) { }, error: function(xhr, type) { } }); </script> ``` 这种思路确实可行,但是我这里的 data 数据不仅仅需要传递 button 的值,还需要传递我想保存的数据,也就是把我想保存的数据和不想保存的 button 的值都放在了同一个 data 键值对里面,感觉这种处理方式不怎么优雅,有没有更方便可行的方式呀? |
5
Kilerd 2017-08-13 18:04:05 +08:00 via iPhone
@SeanChense 所以说这是百度都能找到的问题。
拒绝伸手党,从我做起。 |
6
spongebobsun 2017-08-13 18:05:21 +08:00
请求的时候给不同的参数,或者请求不同的 url 都可以解决
|
7
Lax 2017-08-13 18:05:56 +08:00
前端代码需要把 form 拆开;如果不拆 form,可以把两个 button 对应不同的值,然后提交。button 好用之后可以 ajax。
后段代码,竟然 load 和 save 不做拆分,痛苦。 ``` button_to :action1, remote: true button_to :action2, remote: true ``` 对不起我是隔壁 ruby 加过来砸场子的。 建议先学基本的 html 再开始写代码。没有基础知识支持的写代码都是瞎写 |
8
phy25 2017-08-14 01:51:20 +08:00 via Android
把 button 改成 input,input:submit 会提交按下的按钮上写的名称(要顺便定义 name 和 value ),这样是不用 Javascript 的解决方案。
用 JS 的话就随便玩啦。讲真这个技巧应该能搜到。 |
10
tennc 2017-08-16 22:40:06 +08:00
|