文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Flask-SQLAlchemy 配置
开发阶段,我会使用 SQLite 数据库,SQLite 数据库是开发小型乃至中型应用最方便的选择,因为每个数据库都存储在磁盘上的单个文件中,并且不需要像 MySQL 和 PostgreSQL 那样运行数据库服务。
让我们给配置文件添加两个新的配置项:
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
# ...
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
Flask-SQLAlchemy 插件从 SQLALCHEMY_DATABASE_URI
配置变量中获取应用的数据库的位置。 当回顾 第三章 可以发现,首先从环境变量获取配置变量,未获取到就使用默认值,这样做是一个好习惯。 本处,我从 DATABASE_URL
环境变量中获取数据库 URL,如果没有定义,我将其配置为 basedir
变量表示的应用顶级目录下的一个名为 app.db 的文件路径。
SQLALCHEMY_TRACK_MODIFICATIONS
配置项用于设置数据发生变更之后是否发送信号给应用,我不需要这项功能,因此将其设置为 False
。
数据库在应用的表现形式是一个 数据库实例 ,数据库迁移引擎同样如此。它们将会在应用实例化之后进行实例化和注册操作。 app/__init__.py
文件变更如下:
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models
在这个初始化脚本中我更改了三处。首先,我添加了一个 db
对象来表示数据库。然后,我又添加了数据库迁移引擎 migrate
。这种注册 Flask 插件的模式希望你了然于胸,因为大多数 Flask 插件都是这样初始化的。最后,我在底部导入了一个名为 models
的模块,这个模块将会用来定义数据库结构。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论