模型 (models) 是对数据抽象并提供通用访问接口的一种方式。
在大多数网络应用中,数据会被存储在一个关系数据库管理系统 (RDBMS) 中,也就是把数据格式化存储在由行与列组成的表格中,且能够跨表对数据进行比较。例如 MySQL、Postgress、Oracle 和 MSSQL。
为了基于数据库抽象出数据模型,我们需要使用一个叫做 SQLAlchemy 的 Python 包。SQLAlchemy 在底层包装了数据库操作接口,在最上层提供了对象关系映射 (ORM)。
ORM 是在基于不同的数据结构和系统类型的数据源之间传递和转换数据的技术在这里,它用来把大量的不同类型的数据库中的数据,转换成 Python 对象的集合。同时,像 Python 这样的语言,允许你在不同的对象之间建立引用,读取和设置它们的属性;而 SQLAlchemy 这样的 ORM,能为你将操作对象转换为传统的数据库操作。
Flask SQLAlchemy 在SQLAlchemy上提供了一层包装,这样就可以结合 Flask 的一些特性来方便地调用 SQLAlchemy 的功能。
我们的第一个数据模型
SQLAlchemy 不但允许我们根据数据库表结构创建数据模型 (model),也允许我们根据数据模型创建数据库表结构。所以当我们把第一个模型创建出来之后,表结构也就有了。
首先,要在main.py
文件中将我们的 app 对象传给 SQLAlchemy,将 SQLAlchemy 初始化:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlc