【问题标题】:How to insert using "insert into select pause" and using iterable in Python Flask如何使用“插入选择暂停”插入并在 Python Flask 中使用可迭代
【发布时间】:2021-07-11 02:21:49
【问题描述】:

我正在使用 Python 烧瓶实现食品订购功能。
我在插入 mysql db 时遇到困难,所以我问一个问题。

首先,我必须从名为 menu 的表中获取数据并将其插入 order_detail,因此我使用了 insert into select。
我正在尝试通过for语句将每个数据存储在order_detail表中,但是我不知道如何将for语句的变量放入mysql中。
代码如下。

def cart_insert(element):
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    for item in element:
        sql = "insert into order_detail (order_id, menu_name, food_qty, food_price)\
                 select 1, item , 1, menu_price from menu where menu.menu_name=item "
        cur.execute(sql)

【问题讨论】:

  • 语法是 "" 插入 order_detail (order_id, menu_name, food_qty, food_price) select 1, item , 1, menu_price from menu where menu.menu_name=? " 然后在 cur.execute(sql, (item))

标签: python flask pymysql


【解决方案1】:

哦!!!!!!我解决了!!!!
我的问题是如何将 python 变量放入 mysql db 列中。
如果你有困难,试试这个。

def cart_insert(element):
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    for item in element:
        sql = "insert into order_detail (order_id, menu_name, food_qty, food_price)\
               select 1, %s, 1, menu_price from menu where menu.menu_name=%s"
        cur.execute(sql, (item, item))

我使用 insert into select 语句从另一个表(菜单表)中获取数据。
在这里将 Python 变量插入数据库是一个问题。由于定义为以列表格式接收,所以在使用python变量时可以在pymysql中使用%s。

定义为以列表形式接收,所以在使用python变量时可以在pymysql中使用%s。
定义 SQL 并将刚刚创建的 SQL 放入执行函数中。而如果你想把python变量放到db中,只需要输入最多%s个python变量即可。

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    相关资源
    最近更新 更多