先安装最新版本的flask-sqlalchemy,Flask-SQLAlchemy-2.3.2.tar.gz
我们使用的数据库为MySQL,以MySQL为例在我们的Flask框架中使用SQLAlchemy访问数据。
首先在config.py中配置数据库相关的地址
...
class DevConfig(Config):
...
SQLALCHEMY_DATABASE_URI="mysql+pymysql://username:password@host:port/dbname"
#SQLALCHEMY_ECHO = True
SQLALCHEMY_TRACK_MODIFICATIONS = False
app/__init__.py中添加初始化代码
from flask_sqlalchemy import SQLAlchemy // 注意这里加载的方式与Python2不同(from flask.ext.sqlalchemy import SQLAlchemy)
db = SQLAlchemy()
def create_app():
...
db.init_app(app)
app/models.py中实现数据库操作对象
from app import db
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.SmallInteger, nullable=False, primary_key=True, autoincrement=True)
name = db.Column(db.String(16), nullable=False)
整理一下SQLAlchemy对象的查询方法(未验证)
1)User.query.order_by(User.id)——对应sql的order by方法@filter_by,filter区别
filter_by直接用属性名,比较用=,filter用类名.属性名,比较用==
filter不支持组合查询,只能连续调用来变相实现