Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 页面加载时间慢_Python_Json_Django_Rest - Fatal编程技术网

Python 页面加载时间慢

Python 页面加载时间慢,python,json,django,rest,Python,Json,Django,Rest,我有一个通过RESTfulAPI调用数据库填充的表。对于一个特定的表列,通过从主API调用中引用ID,然后使用所述ID作为第二个API调用的参数来提取其数据。但是,表中可能有1000行或更多行数据,因此遍历所有这些行并执行第二个API调用会导致页面加载时间非常慢(最多40秒)。我有没有办法处理这个问题?我可以限制每个查询返回的记录数,但理想情况下我会包括所有可用的记录。如果需要其他信息,请告诉我 views.py cw_presales_engineers = [] for opportuni

我有一个通过RESTful
API
调用数据库填充的表。对于一个特定的表列,通过从主
API
调用中引用
ID
,然后使用所述
ID
作为第二个
API
调用的参数来提取其数据。但是,表中可能有1000行或更多行数据,因此遍历所有这些行并执行第二个
API
调用会导致页面加载时间非常慢(最多40秒)。我有没有办法处理这个问题?我可以限制每个查询返回的记录数,但理想情况下我会包括所有可用的记录。如果需要其他信息,请告诉我

views.py

cw_presales_engineers = []

for opportunity in opportunities:
    try:
        opportunity_id = str(opportunity['id'])
        presales_ticket = cwObj.get_tickets_by_opportunity(opportunity_id)
        if presales_ticket:
            try:
                cw_engineer = presales_ticket[0]['owner']['name']
                cw_presales_engineers.append(cw_engineer)
            except:
                pass
        else:
            cw_engineer = ''
            cw_presales_engineers.append(cw_engineer)
    except AttributeError:
        cw_engineer = ''

connectwise_zip = zip(opportunities, cw_presales_engineers)

您是否能够创建一个可以在服务器端进行迭代的新API?您的API是否支持按ID过滤记录?如果是这样的话,这可以用来合并find请求。因此,您可以将它们组合到一个查询请求中,而不是执行
GET/posts/1
GET/posts/2
。这将使您的问题减少到1+1,而不是1+n请求。1+1在大多数情况下都可以,因为我不熟悉xAPI,所以我还不确定@jelhan我可以过滤记录,但我正在引用
opportunity['id']
从完全不同的位置提取记录。因此,每个
API
调用的
URL
是不同的…我是否仍然能够将查找请求合并到两个不同的位置?@garmars如果API支持按ID获取多个记录,则只能合并查找请求。这主要是通过在收集端点上进行过滤来实现的。如果您的API支持不同的机制,您可以自由地执行该操作。@jelhan我在两个不同的端点请求数据,那么有什么方法来处理这种情况吗?还是完全依赖于API?您是否有能力创建一个可以在服务器端进行迭代的新API?您的API是否支持按ID过滤记录?如果是这样的话,这可以用来合并find请求。因此,您可以将它们组合到一个查询请求中,而不是执行
GET/posts/1
GET/posts/2
。这将使您的问题减少到1+1,而不是1+n请求。1+1在大多数情况下都可以,因为我不熟悉xAPI,所以我还不确定@jelhan我可以过滤记录,但我正在引用
opportunity['id']
从完全不同的位置提取记录。因此,每个
API
调用的
URL
是不同的…我是否仍然能够将查找请求合并到两个不同的位置?@garmars如果API支持按ID获取多个记录,则只能合并查找请求。这主要是通过在收集端点上进行过滤来实现的。如果您的API支持不同的机制,您可以自由地执行该操作。@jelhan我在两个不同的端点请求数据,那么有什么方法来处理这种情况吗?还是完全取决于API?