【问题标题】:Trying to use Flask to display query results using Pything [duplicate]尝试使用 Flask 使用 Python 显示查询结果 [重复]
【发布时间】:2016-05-26 17:57:39
【问题描述】:

我正在尝试使用以下代码在 Web 浏览器中显示简单查询的结果,但出现 500 错误

from flask import Flask
import sql_class

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        sql = sql_class.executeScriptsFromFile
        result = sql("My random file path") 
        print "it works"
        return result
    except: 
        print "you broke it"
        return "hello world"

if __name__ == "__main__":
    app.run()

sql_class 是我在常规基础上使用的自定义类,用于连接到我们的 SQL 服务器数据库并从给定文件路径运行脚本。我可以将代码复制到函数外部并将结果打印到控制台窗口就好了,但由于某种原因它在烧瓶函数中崩溃了

【问题讨论】:

  • 查询返回什么? (result 变量的值是多少?)
  • 当您设置app.debug = True 时,它会在您的浏览器中显示什么?
  • @ShamilKMuhammed 查询实际上是“按城市从 table1 中选择城市”。答案集中有 8 条记录。
  • @nephlm 这是错误消息 TypeError: 'list' object is not callable。我在想,由于某种原因,Flask 不能使用我的类/连接字符串。但老实说不知道为什么
  • @John 你希望在浏览器中看到什么?

标签: python sql-server flask


【解决方案1】:

您的查询返回一个列表,您不应该在 Flask 中返回列表作为响应。

试着让你的列表变成一个字符串,像这样:

@app.route("/")
def hello():
    try:
        sql = sql_class.executeScriptsFromFile
        result = sql("My random file path") 
        print "it works"
        return str(result)
    except: 
        print "you broke it"
        return "hello world"

或者编码成json:

import json

@app.route("/")
def hello():
    try:
        sql = sql_class.executeScriptsFromFile
        result = sql("My random file path") 
        print "it works"
        return json.dumps(result)
    except: 
        print "you broke it"
        return "hello world"

或将其设为逗号分隔的字符串,如下所示:

@app.route("/")
def hello():
    try:
        sql = sql_class.executeScriptsFromFile
        result = sql("My random file path") 
        print "it works"
        return ", ".join(result)
    except: 
        print "you broke it"
        return "hello world"

我建议学习 Flask 教程

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多