使用按钮通过flask运行SQL查询

时间:2019-07-10 21:46:06

标签: python flask

在用户页面上,我有一个“添加”按钮,该按钮应该向另一个用户发送添加请求。该按钮的烧瓶代码使用friend_request表,该表需要存储在session [user_ID]中的请求发送者的用户ID,以及需要将其ID存储在data.uid中的接收者的ID(以HTML格式),该接收者源自用户页面上的“数据” ()路线, 用户页面的烧瓶代码:

@app.route('/user/<user_id>')
def userpage(user_id):
    user_id = int(user_id)
    c = sq.connection.cursor()

    try:
        result = c.execute('SELECT * FROM users WHERE uid = %s ',(user_id))
    except:
        print('Error','info')
    data = c.fetchall()

    return render_template('user/profpage.html', data=data[0]) 

用户页面HTML:

<h1>Name here</h1>
<p> Description, of a really cool person</p>

<p> {{ data.fname }}</p>
<p> {{ data.lname }}</p>
<p> {{ data.email }}</p>
{% if session['user_ID'] != data.uid %}
    <a href="/user/add/{{ data.uid }}" class="btn btn-primary" name="Add">Add</a>
{% endif %}

添加按钮的烧瓶代码:

@app.route('/user/add/<user_id>')
def useradd(user_id):
    user_id = int(user_id)
    c = sq.connection.cursor()
    try:
        result = c.execute('INSERT INTO friend_requests(req_by,req_to) VALUES (%s,%s) ',(session['user_ID'],user_id))
        sq.connection.commit()
    except:
        print('Error','info')

    return redirect(url_for('userpage'))

当我尝试实现此功能时,它将信息输入到日期数据库表中,但是出现以下错误“ werkzeug.routing.BuildError:无法为端点'userpage'构建url。您忘记指定值['user_id ']?”

1 个答案:

答案 0 :(得分:1)

代码

return redirect(url_for('userpage'))

尝试使用route('/user/')来构建URL,但是只有route('/user/<user_id>')期望user_id作为参数-因此您必须在user_id中添加此url_for

url_for('userpage', user_id=user_id)

url_for('userpage', user_id=session['user_ID'])