Python 如何在flask应用程序中向不同的用户显示不同的数据?
我创建了一个flask应用程序,使用mysql作为DB后端,多个用户同时使用它 我遇到的问题是,在我的主页中执行选择查询并向用户显示数据,但向所有用户显示相同的数据。它应该是唯一的。我已尝试在选择行时使用更新的锁定该行。我知道我没有更新该行,因此当函数结束时事务将关闭,该行将从锁中释放 如何克服这个问题 预期输出:每个用户应从表中获取不同的数据。(即使在刷新时) 我看不到sql查询中使用的任何“当前用户”特定参数,也看不到根据某些用户ID决定的任何数据筛选。 基本上,如果您对该端点上的所有请求运行相同的代码和相同的查询,那么它永远不会是唯一的。您需要添加一些特定于用户的检查,以便能够区分当前请求用户的输出 根据您的用例和数据库模型,如果表Python 如何在flask应用程序中向不同的用户显示不同的数据?,python,mysql,flask,mysql-python,Python,Mysql,Flask,Mysql Python,我创建了一个flask应用程序,使用mysql作为DB后端,多个用户同时使用它 我遇到的问题是,在我的主页中执行选择查询并向用户显示数据,但向所有用户显示相同的数据。它应该是唯一的。我已尝试在选择行时使用更新的锁定该行。我知道我没有更新该行,因此当函数结束时事务将关闭,该行将从锁中释放 如何克服这个问题 预期输出:每个用户应从表中获取不同的数据。(即使在刷新时) 我看不到sql查询中使用的任何“当前用户”特定参数,也看不到根据某些用户ID决定的任何数据筛选。 基本上,如果您对该端点上的所有请求运
image\u links
中的数据也是由某些用户操作创建/插入的,则您可能希望在这些值旁边另外保存一些用户ID,例如,通过使用另一个“user\u ID”列扩展表模型,并在插入时添加当前用户的ID
您正在使用某个身份验证装饰器
@已登录
,如果您已经在某个表中处理用户,则另一个用户id
列可能是对相应用户主键的引用。然后,在您的示例中,您只需添加额外的,其中user\u id=
检查当前用户的主键。正如我在这个SQL查询中看到的:
从图像链接中选择mylist、myurl、样例、父对象
也许您确实指定了相关用户以获取其自己的特定数据,请尝试将最后一个“where”替换为:
其中id=(user.id)-->用户对象
或者你可以使用和关键字,比如
其中status=(x)和id=(y)
@is_logged_in
@app.route('/')
def index():
conn = mysql.connection
cur = conn.cursor()
cur.execute("select mylist ,myurl ,swatch,parent from image_links where status =%s LIMIT 1 FOR UPDATE",("fetched",))
parent = cur.fetchall()
for row in parent:
mylistitems = row[0].split(",")
swatches = row[2].split(",")
myurlsitems = row[1].split(",")
pid = row[3]
if asinlist != ['']:
merged = tuple(zip(mylistitems ,myurlsitems ,swatches))
return render_template('home.html',firstimage= myurlsitems[0],merged=merged)
else:
cur.execute("UPDATE asin_links SET status = %s WHERE pid= %s", ("invalid",pid,))
conn.commit()
return redirect(url_for('index'))