【问题标题】:returns single value while using for loop in django在 django 中使用 for 循环时返回单个值
【发布时间】:2021-05-07 09:29:49
【问题描述】:

我正在尝试使用 for 循环在一个请求中返回 2 个表数据。当我打印结果时,它显示正确,但返回第一个表结果时只显示。我尝试过使用它不适用于响应。我在循环内部和外部都使用了 return 但没有实现。请求请给出您的建议。

table_name = "table1,table2"

table_multiple = list(table_name.split(","))
con = psycopg2.connect(user=username, host=host, database=db_name, password=password)
for tablenames in table_multiple:
    t_data = pd.read_sql_query(f"select * from {tablenames}", con)
    table_json = t_data.to_json(orient="records")
    tableDatum = json.loads(table_json)
    print(tableDatum)
    return Response('tableDatum' : tableDatum)

【问题讨论】:

    标签: python django django-rest-framework django-views


    【解决方案1】:

    您的 for 循环在 return 语句之后停止,它不会执行第二次执行,因为 return 语句会终止循环和运行它的函数。如果 return 在您的 main 中,那么您的脚本将在此处停止。

    您应该将提取的数据放在一个数组中,以将这些数据附加到数组中,然后返回该数组。

    table_name = "table1,table2"
    
    table_multiple = list(table_name.split(","))
    con = psycopg2.connect(user=username, host=host, database=db_name, password=password)
    tableDump = []
    for tablenames in table_multiple:
        t_data = pd.read_sql_query(f"select * from {tablenames}", con)
        table_json = t_data.to_json(orient="records")
        tableDatum = json.loads(table_json)
        print(tableDatum)
        tableDump.append(tableDatum)
    return Response('tableDump' : tableDump)
    
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 2023-02-20
      • 1970-01-01
      相关资源
      最近更新 更多