在用户页面上,我有一个“添加”按钮,该按钮应该向另一个用户发送添加请求。该按钮的烧瓶代码使用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 ']?”
答案 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'])