以下是代码:
#from hooks.basic import *
from sqlalchemy import *
from sqlalchemy.engine import *
from sqlalchemy.sql import *
import os
db_list = []
word_list=[]
#if os.path.exists("logs.db"):
# pass
engine = create_engine('sqlite:///logs.db', echo=False)
connection = engine.connect()
try:
connection.execute(
"""
CREATE TABLE users (
sentence VARCHAR
);
"""
)
except:
pass
def hook_db(text = None):
"""Used to save what was said"""
global db_list
#global word_list
db_list.append(text)
connection.execute(
"""
INSERT INTO users (sentence) VALUES (?);
""",
text
)
return db_list
def insert_db(text):
connection.execute(
"""
INSERT INTO users (sentence) VALUES (?);
""",
text
)
def output_db():
s = select([users])
result = conn.execute(s)
return(result)
def input_(input__: dict):
global word_list
word_list = input__
return word_list
我知道代码没有多大意义,但有人知道为什么我会收到以下错误吗?
File "/home/tsumugi/python/git_python/kontainer/kontena/utils/dbutils.py", line 60, in output_db
s = select([users])
NameError: name 'users' is not defined
我在"选择"部分下阅读了以下教程http://docs.sqlalchemy.org/en/rel_0_8/core/tutorial.html。它告诉我这样做。
答案 0 :(得分:2)
users = Table('user', metadata, Column('sentence', String()))
完整示例:
from sqlalchemy import create_engine, Table, Column, String, MetaData, select
engine = create_engine('sqlite:///:memory:', echo=True)
metadata = MetaData(engine)
users = Table('user', metadata, Column('sentence', String()))
metadata.create_all(engine)
connection = engine.connect()
s = select([users])
result = connection.execute(s)