python - 使用按钮通过烧瓶运行 SQL 查询
问题描述
在用户页面上,我有一个“添加”按钮,它应该向另一个用户发送添加请求。按钮的烧瓶代码使用friend_request表,该表需要存储在会话[user_ID]中的请求发送者的用户ID和存储在data.uid(HTML中)中的接收者,该ID来自用户页面上的“数据” () 路由,用户页面的 Flask 代码:
@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']? "
解决方案
代码
return redirect(url_for('userpage'))
try to use route('/user/')
to build URL but you have only route('/user/<user_id>')
which expects user_id
as parameter - so you have to add this user_id
in url_for
url_for('userpage', user_id=user_id)
or
url_for('userpage', user_id=session['user_ID'])
推荐阅读
- python - check start and end available in data using python pandas
- python - Jsonpickle - ensure deterministic encoding
- reactjs - IsValidated not working with redux in react stepzilla
- javascript - 使用 flexslider 循环遍历数组
- python - How to loop through all the pages while scraping hundreds of pages on LinkedIn?
- jhipster - jHipster, generated DTO does not contain related Child DTOs
- python - Python Openpyxl Parse function identifies RANGE incorrectly
- c# - Is it possible to create digitally signed xml using open ssl?
- r - 在 R 中访问矩阵的元素
- angular - NativeScript:触发 ChildActivationStart 事件导致我的页面重定向