gpt4 book ai didi

python - Flask:连接到 sqlite

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:45 26 4
gpt4 key购买 nike

所以我是 Python 新手,目前正在试验 Flask。我已经阅读了大量关于如何使用 flask 配置与简单数据库的连接但没有成功的文档和博客。你们能帮帮我吗?

我现在不想要任何花哨的东西,只是为了让连接正常工作。下面是我想要开始工作的带有简单测试查询的代码。

结果是一个普通的 500 内部服务器错误。

app = Flask(__name__)

from flask import Flask
import sqlite3
from flask import g

@app.before_request
def before_request():
g.db = sqlite3.connect("database.db")


@app.teardown_request
def teardown_request(exception):
if hasattr(g, 'db'):
g.db.close()


@app.route('/')
def hello_world():
g.db.execute("INSERT INTO test VALUES 'TestValue'")
g.db.commit()


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

最佳答案

有几件事可能会导致这里出现问题:

首先,您的应用程序需要先导入 Flask 类,然后才能构建应用程序。所以:

app = Flask(__name__):

应该遵循导入语句。

我假设您收到 500 服务器错误,这不是导致问题的原因。

其次,您的插入内容中存在一个小的语法错误。它应该是:

g.db.execute("INSERT INTO test VALUES ('TestValue')")

请阅读SQLite documentation关于使用插入的正确语法。或查看 this tutorial (这实际上更有启发性)。

最后,我怀疑您还没有设置数据库,这就是插入错误的原因。例如,如果数据库不存在,Flask 如何向表中插入数据?

你应该认识到 Flask 足够聪明来创建一个 SQLite 数据库,你会在名为 database.db 的工作目录中找到它这正是您在这里所做的:

g.db = sqlite3.connect("database.db")

但这不会用正确的模式填充该数据库以允许您通过 Flask 应用程序实际插入数据。您需要的是通过将模式写入数据库来初始化数据库。例如,创建模式:

CREATE TABLE test (
field1 STRING
);

然后,在命令提示符下发出:

sqlite3 database.db < schema.sql

这将创建一个数据库,其中包含一个名为 test 的表,该表接受一个字符串类型的字段。现在数据库已经初始化,您可以通过 Flask 应用程序写入它。较大的项目通常会有一个数据库初始化脚本。

关于python - Flask:连接到 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com