删除我在MySQL中使用删除消息按钮通过查询输入的行

时间:2018-11-15 22:05:38

标签: python html mysql flask jinja2

因此,我正在创建一堵墙,人们可以在其中向其他用户发送消息。在我的SQL中,我有两个表,一个表用于用户,一个表用于消息,并且表被标记为此类。

在我的邮件表中,列名是id,sender_id,message,created_at,updated_at和收件人ID。用户表列如下ID,名字,姓氏,电子邮件,密码(散列),created_at,updated_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')

在我的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,但无法实现。.

任何帮助将不胜感激。

0 个答案:

没有答案