Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在flask应用程序中向不同的用户显示不同的数据?_Python_Mysql_Flask_Mysql Python - Fatal编程技术网

Python 如何在flask应用程序中向不同的用户显示不同的数据?

Python 如何在flask应用程序中向不同的用户显示不同的数据?,python,mysql,flask,mysql-python,Python,Mysql,Flask,Mysql Python,我创建了一个flask应用程序,使用mysql作为DB后端,多个用户同时使用它 我遇到的问题是,在我的主页中执行选择查询并向用户显示数据,但向所有用户显示相同的数据。它应该是唯一的。我已尝试在选择行时使用更新的锁定该行。我知道我没有更新该行,因此当函数结束时事务将关闭,该行将从锁中释放 如何克服这个问题 预期输出:每个用户应从表中获取不同的数据。(即使在刷新时) 我看不到sql查询中使用的任何“当前用户”特定参数,也看不到根据某些用户ID决定的任何数据筛选。 基本上,如果您对该端点上的所有请求运

我创建了一个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'))