【问题标题】:How to make delete-all button in flask如何在烧瓶中制作全部删除按钮
【发布时间】:2022-01-24 23:49:10
【问题描述】:

我一直在尝试为我的烧瓶 Web 应用程序创建一个全部删除按钮。到目前为止,我只成功地制作了一个删除按钮,一个接一个地删除:


@controllers.route('/delete-note/<int:id>', methods=[ 'DELETE' ])
def delete_note(id):
    activity = json.loads( request.data )
    print(activity)
    activity_id = activity[ 'activity_id' ]
    activity = UserActivity.query.get( activity_id )

    if activity:
        if activity.uid == current_user.id:
            db.session.delete( activity )
            db.session.commit()
    return jsonify({"status": True})

这是我的 saved.py 文件,用户选择将哪些活动保存到这个文件中:

        <button type='button' class='close' style='align-self: flex-end;padding: 1.2em;' onclick="deleteAll()"
        <span>Delete All</span>
        </button>  
        <ul class='flex-container wrap' id='saved_notes'>
              {% if data %}
                {%for ua in data%}
                <form method='DELETE'>
                    <li class='flex-item' style ='padding: 1.2rem;' id="act-{{ua.id}}">
                        <div>
                            <button type='button' class='close' onclick="deleteNote(`{{ua.id}}`)">
                                &times;
                            </button>
                            <button type='button' class='close' onclick="completed()">
                                <span>&#10004;</span>
                            </button>
                        </div>
                            <div style='width: 20em;'>
                                <span>Activity: </span>{{ ua.activity [ 'activity' ] }}
                            </div>
                            
                            <div><span>Activity-type: </span>{{ ua.activity[ 'type' ] }}</div>
                            <div><span>Number of people needed: </span>{{ ua.activity['participants'] }}</div>
                            <div><span>Price: </span>{{ ua.activity['price'] }}</div>
                            {% if ua.activity['link']|length %} 
                                <div><span>Link: </span><a href = "{{ ua.activity['link'] }}">Click me!</a></div>
                            {% endif %}    
                    </li>
                    <!-- end of act ua id -->
                </form>
                {% endfor %}
            {% endif %}  

这是 deleteNote 函数背后的 JavaScript:

const deleteNote = id => fetch(`/delete-note/${id}`,{
    method: 'DELETE',
    body: JSON.stringify({ activity_id: id})
}).then((_res) =>{
    $(`#act-${id}`).remove();
    alert("deleted " + id)
})

有什么方法可以实现'deleteAll()'函数吗?

【问题讨论】:

    标签: javascript python html flask flask-sqlalchemy


    【解决方案1】:

    你可以试试这个:

    @controllers.route('/delete-notes/', methods=['GET'])
    def delete_notes():
        num_activities_deleted = db.session.query(UserActivity).delete()
        db.session.commit()
        return jsonify({"num_activities_deleted ": num_activieties_deleted })
    

    和js:

    const deleteNotes = id => fetch(`/delete-notes/`,{
        method: 'GET'
    }).then((_res) =>{
        $(`#act-`).remove();
        alert("deleted: " + num_activities_deleted + " activities" )
    })
    

    【讨论】:

    • 非常感谢你!但是我可以问一下我将如何在我的 JavaScript 中实现这一点。我将如何在所有笔记上使用删除功能
    • 也许这个js就是你的意思。
    • 非常感谢!使用后网页仍然没有重新加载:``` window.location.href = '/saved'; ``` 在您编写的函数中,虽然“全部删除”按钮确实有效,但我必须手动重新加载页面。
    猜你喜欢
    • 1970-01-01
    • 2013-11-16
    • 2021-01-01
    • 2014-07-20
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多