看网上资料学习sqlalchemy,突然发现困惑,引用的库居然不是完全一样:
一种是:
from flask_sqlalchemy import SQLAlchemy
另一种是:
from sqlalchemy import Column, String, create_engine
from sqlalchemy.orm import sessionmaker
SQLAlchemy:
SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。一句话:就是对数据库的抽象!
Flask-SQLAlchemy:
Flask-SQLAlchemy是一个简化了 SQLAlchemy 操作的flask扩展,是SQLAlchemy的具体实现,封装了对数据库的基本操作。举例:如果说动物园是SQLAlchemy,那Flask-SQLAlchemy只是其中的一只。
下面是百度找来的回答:
It aims to simplify using SQLAlchemy with Flask by providing useful
defaults and extra helpers that make it easier to accomplish common
tasks. (官网原文)
flask-sqlalchemy 在 sqlalchemy 的基础上,提供了一些常用的工具,并预设了一些默认值,帮助你更轻松地完成常见任务。
flask-sqlalchemy 用起来比直接用 sqlalchemy 方便、省事,不过有些高级一点的功能如果不了解 sqlalchemy 的话会用不好。
所以个人建议最好先直接用 sqlalchemy 工作一小段时间,感受一下 sqlalchemy 到底是怎样运行起来的。等有了一定了解后,如果觉得有必要,再改用 flask-sqlalchemy,提高编程效率。