在mysql中删除我使用delete message按钮通过查询输入的行

alen0pnh  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(262)

因此,我正在创建一堵墙,人们可以在这里向其他用户发送消息。在我的sql中,我有两个表,一个用于用户,一个用于消息,这些表被标记为这样。
在“我的邮件”表中,列名为id、sender\u id、message、created\u at、updated\u at和recipient\u id。users表列如下:id、firstname、lastname、email、password(哈希)、created\u at、updated\u at。
发信息没问题。但是,当我试图创建一个路由来删除那个人的墙中的消息时,我似乎无法让它工作。
以下是我的server.py文件中的代码:

@app.route("/delete/<id>", methods=["POST"])
def delete(id):
    mysql=connectToMySQL('logindb')
    query = "DELETE FROM messages WHERE (id = request.form['user_id']) and (sender_id = session['sender_id]);"
    # DELETE FROM `logindb`.`messages` WHERE (`id` = '51') and (`sender_id` = '12');
    selecter = mysql.query_db(query)
    return redirect('/wall')

(注解掉的代码是我在mysql中看到的)
以下是我的创建消息路由:

@app.route('/create_messages', methods=['POST'])
def create_messages():
    mysql=connectToMySQL('logindb')
    query = "INSERT INTO messages(message, created_at, updated_at, sender_id, recipient_id) values(%(messages)s, now(), now(), %(sender_id)s, %(recipient_id)s)"
    data = {
        'messages' : request.form['message'],
        'sender_id' : session['id'],
        'recipient_id' : request.form['user_id']
    }
    session['recipient_id'] = request.form['user_id']
    session['sender_id'] = session['id']
    print(session['recipient_id'],'THIS IS THE RECIPIENT ID !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
    print(session['sender_id'],'THIS IS THE SENDER ID !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
    inserter = mysql.query_db(query,data)
    return redirect('/wall')

在my wall.html文件中。我有两个部分。右边的部分是创建消息,左边是特定用户拥有的消息。我也有一个错误在这里,我想纠正,如果你能帮助我,但这是一个小错误。所以在你可以发送消息的部分,登录的用户可以发送消息给他自己。。。我本来不打算这么做的,但我觉得这可能是很酷的一种提醒,但我确实想看看,如果我可以修复以及。
创建消息端:

<div class="right_messages">
        {%for messages in create%}
        <form action="/create_messages" method="post">
            {{messages['firstName']}}
            <textarea name="message"></textarea>
            <input type="hidden" name="user_id" value={{messages['id']}}>
            <input type="submit" value="send">
        </form>
        {%endfor%}
    </div>

查看并删除消息端:

<div class="left_messages">
        <h3>{{count}} message(s) for you {{session['firstName']}}!</h3>
        <div class="messages">
        {%for messages in message%}
            <p>{{messages['firstName']}} said at {{messages['created_at']}} <br> {{messages['message']}}</p>
            <form method="post" action="/delete/{{message.id}}">
                <input type="hidden" value="{{message.id}}" name="id">
                <input type="submit" value="delete">
            </form>
        {%endfor%}
        </div>
    </div>

我尝试使用隐藏输入来传输消息id,但无法实现。。
任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题