为什么我必须在Flask for SQLAlchemy中更改uri?

mat*_*ver 4 python sqlite uri sqlalchemy flask

我正在尝试在Flask中开发一个Web应用程序,我注意到如果我想使用SQLite3作为我的数据库,那么我必须输入

DATABASE = 'flaskr.json'
Run Code Online (Sandbox Code Playgroud)

但是,如果我想使用SQLAlchemy进行数据库实现,我必须使用类似的东西

DATABASE = 'sqlite:////Users/jake/repos/flaskralchemy/flaskr.db
Run Code Online (Sandbox Code Playgroud)

这种变化有什么意义?此外,在我看到的所有示例中,没有人在其服务器上创建实际数据库.到底是怎么回事?

提前致谢.

Rac*_*ers 10

我有点不清楚你在问什么,你在哪里设置这个DATABASE值以及来自flaskr.json值的位置.但我会试一试,希望它会有所帮助.

因此,显然,您需要告诉您的应用程序如何连接到您的数据库.您通常会在应用配置中将其设置为:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
Run Code Online (Sandbox Code Playgroud)

对于SQLlite,你只需要一个文件路径(如上所述)对于MySQL,我的应用程序设置如下:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@server.site.com/database'
Run Code Online (Sandbox Code Playgroud)

您可以在SQLAlchemy文档中阅读比您想知道的更多的方法:

http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls

另外,你看过Flask-SQLAlchemy插件了吗?它为您提供了一些很好的工具来处理它.

http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#a-minimal-application