Объект Cursor возвращает данные локально, но в производстве он пуст - PullRequest
0 голосов
/ 10 октября 2019

У меня есть Flask API, где я возвращаю данные, используя psycopg2 и SQL-запросы. Конечные точки работают, как и ожидалось, локально, возвращая данные вместе с HTTP-статусом 200, но при работе он возвращает HTTP-статус 204, даже если в таблице есть записи. Если я захожу на сервер и запускаю SQL-запрос как пользователь базы данных, он возвращает записи.

Это одна из моих конечных точек:

# Return all products
@products_api.route('/v1/resources/products/all', methods=['GET'])
def api_all():
  conn = databaseConnection()
  cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
  sql_all_products = cur.execute('SELECT a.*, b.id as userID, b.username, b.firstname, b.surname, b.email, b.avatar_url, c.category_id, c.category_name, c.parent_id FROM products a INNER JOIN users b ON a.user_id = b.id INNER JOIN product_categories c ON a.product_category_id = c.category_id ORDER BY a.id, b.id;')
  all_products = cur.fetchall()
  cur.close()
  conn.close()
  if all_products:
    return Common.custom_response(all_products, 200)
  else:
    return Common.custom_response({'message': 'No Content'}, 204)

Я не уверен, что этопроблема с моим кодом или с конфигурацией сервера. Я пытался использовать разные фабрики курсоров, но проблема сохраняется. Есть идеи, что я сделал не так?

...