V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

怎么利用 flask 后端框架检测前台按钮被按下?

  •  
  •   whutgeek · 69 天前 · 1108 次点击
    这是一个创建于 69 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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>
    

    index.py:

    @app.route('/')
        def index():
            pass    #问题就是需要在这里区分两个按钮谁被按下了
    

    希望各位大大不啬赐教,在此先谢谢了!

    10 回复  |  直到 2017-08-16 22:40:06 +08:00
        1
    Kilerd   69 天前 via iPhone
    先去学学 flask 怎么处理 form 内容的,再来问问题
        2
    learnshare   69 天前
    Ajax
        3
    SeanChense   69 天前
    1.给两个不同的 button 绑定不同的 url 链接
    2.button 带一个表单,表单里写自己的 id


    @Kilerd 人家都会表单的还来问你?
        4
    whutgeek   69 天前
    @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   69 天前 via iPhone
    @SeanChense 所以说这是百度都能找到的问题。
    拒绝伸手党,从我做起。
        6
    spongebobsun   69 天前
    请求的时候给不同的参数,或者请求不同的 url 都可以解决
        7
    Lax   69 天前
    前端代码需要把 form 拆开;如果不拆 form,可以把两个 button 对应不同的值,然后提交。button 好用之后可以 ajax。

    后段代码,竟然 load 和 save 不做拆分,痛苦。

    ```
    button_to :action1, remote: true
    button_to :action2, remote: true
    ```

    对不起我是隔壁 ruby 加过来砸场子的。
    建议先学基本的 html 再开始写代码。没有基础知识支持的写代码都是瞎写
        8
    phy25   68 天前 via Android
    把 button 改成 input,input:submit 会提交按下的按钮上写的名称(要顺便定义 name 和 value ),这样是不用 Javascript 的解决方案。
    用 JS 的话就随便玩啦。讲真这个技巧应该能搜到。
        9
    lovesky   68 天前
    @Kilerd 拒绝伸手党,从我做起。+1
        10
    tennc   65 天前
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1630 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 50ms · UTC 14:07 · PVG 22:07 · LAX 07:07 · JFK 10:07
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1