在 Flask-SQLAlchemy 中,数据库使用 URL 指定。最流行的数据库引擎采用的数据库 URL格式如下表所示。
FLask-SQLAlchemy数据库URL
SQLite 数据库不需要使用服务器,因此不用指定 hostname、 username 和password。 URL 中的 database 是硬盘上文件的文件名。
还可以根据环境配置数据库地址:
在3个子类中,SQLALCHEMY_DATABASE_URI变量都被制订了不同的值。这样程序就可以在不同的配置环境中运行,每个环境使用不同的数据库。
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
class TestingConfig(Config):
TESTING = True
SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')
WTF_CSRF_ENABLED = False
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data.sqlite')
但是在命令行下操作数据库非常不方便,因为看不到数据库里面的数据到底是什么样的,尤其在删除的时候,会因为找不到对象的名字而操作失败或者误删。可以直接用Nivicat打开生成的data.sqlite文件实现可视化操作。