【发布时间】:2016-12-14 00:05:11
【问题描述】:
我正在运行一个与 sqlite 数据库绑定的烧瓶 Web 框架。我在返回包含列名和该列值的查询时遇到问题。我在下面包含相关代码。
import threading
import time
import KeySys
import serial
from flask import Flask, request
from flask_restful import reqparse, abort, Api, Resource
from sqlalchemy import create_engine
from json import dumps
from time import sleep
from datetime import datetime
e = create_engine('sqlite:///lockdb.db')
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('LockSwitch')
class Keystat_Meta(Resource):
def get(self):
#Connect to databse
conn = e.connect()
#Perform query and return JSON data
query = conn.execute('select * from LockStat')
return {'KeyStat': [query.cursor.fetchall()]} # I've tried keys() all() items(column, value) and various different queries.
api.add_resource(Keystat_Meta, '/keystat')
if __name__ == '__main__':
app.run()
【问题讨论】:
-
您遇到什么错误?
query应该是根据sqlalchemy docs 的字典。尝试打印query.items()看看是否有结果。 -
感谢您的帮助,当我执行 query.cursor.fetchall() 时,我得到的值没有列名,如果我执行 query.keys(),我得到所有列名但没有值。如果我做 query.items() 我得到错误 'ResultProxy' object has no attribute 'items'
-
@ichbinblau 该文档适用于 sqlalchemy .9,已弃用。我正在运行最新的 sqlalchemy 1.1。无论如何我都试过了,但它不起作用 column_description 不再是查询选项。
标签: python sqlite api flask sqlalchemy