[英]How to retrieve data from sqlite3 database filled up using Python?
我正在使用peewee和flask来用用户的输入和其他各种统计信息填充数据库。 如何检索sqlite3数据库中的数据? 这是骨架:
from peewee import *
database = SqliteDatabase('app4.db', autocommit=True)
class BaseModel(Model):
class Meta:
database = database
class Model1(BaseModel):
class Model2(BaseModel):
class Model3(BaseModel):
app = Flask(__name__)
@app.before_request
def func1():
database.connect()
@app.after_request
def func2(response):
database.close()
return response
@app.route('/', method= ['GET'])
def some_func():
#update pluto and create instances of Model2 and Model3 here
if __name__ == "__main__":
database.connect()
database.create_tables([Model1, Model2, Model3], True)
pluto, created = Model1.get_or_create(key = 2, key2 = 0)
我的应用程序正在运行,并显示Model1和Model2的更新实例,这意味着它已经创建了模型并正在不断更新数据库。 但我不知道如何离线检索此数据。
当我进入我的sqllite数据库sqlite3 app4.db
和类型.tables
它为我所有的表,即模型1,模型2,Model3但输入查询: select * from model1;
什么也没给。 我也尝试在Ipython shell中检索数据,也如上所述与数据库建立连接并查询list(Model1.select())
但它给出了一个空列表。
您的数据库文件名似乎设置为app.py
:
database = SqliteDatabase('app.py', autocommit=True)
如果要使用的话,应该是app4.db
:
database = SqliteDatabase('app4.db', autocommit=True)
您正在使用的命令看起来像在命令行上正确执行的命令。 在我看来,好像2件事中有1件事正在发生:
尝试重命名app4.db文件,然后重新运行您的应用程序,看看它是否创建了一个新文件。 这样,您可以确保在正确的版本上使用sqlite3。 如果您仍然没有使用列出的命令看到任何数据,那么我认为您的应用程序实际上并未将数据放入表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.