嗨,我正在用Flask和Sqlite3构建一个web应用程序。我有一段时间在连接数据库时遇到了问题,但在我写下这篇文章时,它不起作用:#version 1
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:C:/Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Python给了我操作错误:无法打开数据库,因为我在冒号后面写了4个斜杠。在阅读了sqlalchemy文档并进行了大量试验后,我发现这个方法很有效:
^{pr2}$
或者这个有4个斜杠但没有C:#version 3
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
我很困惑,因为根据连接字符串的文档:SQLite数据库的文件规范被视为URL的“数据库”部分。请注意,SQLAlchemy url的格式为:driver://user:pass@host/database
这意味着要使用的实际文件名以第三个斜杠右侧的字符开头。因此,连接到相对文件路径如下所示:# relative path
e = create_engine('sqlite:///path/to/database.db')
绝对路径以斜线开头表示,意味着您需要四个斜线:# absolute path
e = create_engine('sqlite:path/to/database.db')
因此,根据这一点,如果我使用绝对路径,我需要4个斜杠,但是当我在版本1中这样做时,python给了我错误。当我在版本2中使用3个斜杠作为绝对路径时,它起作用了。在
所以我真的很困惑。有人能解释一下为什么吗?我真的很感激。谢谢你