Flask: 数据库
Posted brt2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask: 数据库相关的知识,希望对你有一定的参考价值。
大部分程序都需要保存数据,所以不可避免要使用数据库。用来操作数据库的数据库管理系统(DBMS)有很多选择,对于不同类型的程序,不同的使用场景,都会有不同的选择。在这个教程中,我们选择了属于关系型数据库管理系统(RDBMS)的 SQLite,它基于文件,不需要单独启动数据库服务器,适合在开发时使用,或是在数据库操作简单、访问量低的程序中使用。
1. 使用 SQLAlchemy 操作数据库
为了简化数据库操作,我们将使用 SQLAlchemy
——一个 Python 数据库工具(ORM,即对象关系映射)。借助 SQLAlchemy,你可以通过定义 Python 类来表示数据库里的一张表(类属性表示表中的字段 / 列),通过对这个类进行各种操作来代替写 SQL 语句。这个类我们称之为模型类,类中的属性我们将称之为字段。
Flask 有大量的第三方扩展,这些扩展可以简化和第三方库的集成工作。我们下面将使用一个叫做 Flask-SQLAlchemy 的官方扩展来集成 SQLAlchemy。
首先安装它: $ pip install flask-sqlalchemy
大部分扩展都需要执行一个“初始化”操作。你需要导入扩展类,实例化并传入 Flask 程序实例:
from flask_sqlalchemy import SQLAlchemy # 导入扩展类
app = Flask(__name__)
db = SQLAlchemy(app) # 初始化扩展,传入程序实例 app
2. 设置数据库 URI
为了设置 Flask、扩展或是我们程序本身的一些行为,我们需要设置和定义一些配置变量。Flask 提供了一个统一的接口来写入和获取这些配置变量: Flask.config
字典。配置变量的名称必须使用大写,写入配置的语句一般会放到扩展类实例化语句之前。
下面写入了一个 SQLALCHEMY_DATABASE_URI
变量来告诉 SQLAlchemy 数据库连接地址:
# ...
app.config[‘SQLALCHEMY_DATABASE_URI‘] = ‘sqlite:////‘ + os.path.join(app.root_path, ‘data.db‘)
对于这个变量值,不同的 DBMS 有不同的格式,对于 SQLite 来说,这个值的格式如下: sqlite:////数据库文件的绝对地址
。
数据库文件一般放到项目根目录即可, app.root_path
返回程序实例所在模块的路径(目前来说,即项目根目录),我们使用它来构建文件路径。数据库文件的名称和后缀你可以自由定义,一般会使用 .db、.sqlite 和 .sqlite3 作为后缀。
另外,如果你使用 Windows 系统,上面的 URI 前缀部分需要写入三个斜线(即 sqlite:///)。
提示: 你可以访问 Flask 文档的配置页面 查看 Flask 内置的配置变量;同样的,在 Flask-SQLAlchemy 文档的配置页面 可以看到 Flask-SQLAlchemy 提供的配置变量。
以上是关于Flask: 数据库的主要内容,如果未能解决你的问题,请参考以下文章