簡體   English   中英

python中的oracle查詢-返回類型必須是字符串、字典、元組

[英]oracle query in python - The return type must be a string, dict, tuple

我正在嘗試在 web api 端點上顯示查詢的輸出,但它不起作用。

下面的代碼返回TypeError:視圖函數沒有返回有效的響應。 返回類型必須是字符串、字典、元組、響應實例或可調用的 WSGI,但它是一個 int

我已經嘗試了不同的方法,但沒有運氣。 我在這里缺少什么?

from flask import Flask, jsonify, request, render_template
from flask_cors import CORS
import cx_Oracle
import os
import json
import logging

app = Flask(__name__)
app.logger.disabled = True
log = logging.getLogger('werkzeug')
log.disabled = True

@app.route('/query')
def query1():

  connection = cx_Oracle.connect(user='superuser', password='mypass1', dsn='moon.my-org.local:1521/db1_sql')
  cursor = connection.cursor()

  cursor.execute("""SELECT * from users""")

  result = cursor.fetchone()
  if result == None:
          return("No results")
          exit
  else:
          while result:
                  return result[0]
                  result = cursor.fetchone()

  cursor.close()
  connection.close()

port = int(os.getenv("PORT"))
app.run(host='0.0.0.0', port=port, debug=True)

如果問題只是您返回的是整數而不是字符串,那么使用str()將其轉換為字符串是一件簡單的事情:

return str(result[0])

但是,您還有另一個問題——return 語句位於循環內,這意味着只會返回第一個結果,然后函數將完全退出。 循環不會在第一次迭代之后執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM