ORM封装
除了手动封装数据库操作之外,我们还可以使用ORM(对象关系映射)库来封装数据库操作。ORM库将数据库表和Python类映射到一起,使我们能够使用Python对象来操作数据库表。常用的ORM库包括SQLAlchemy和Peewee等。
以下是一个使用SQLAlchemy的例子:
代码语言:javascript复制from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_app.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __repr__(self):
return '<User %r>' % self.name
在这个例子中,我们使用了Flask中的SQLAlchemy扩展来封装数据库操作。我们首先实例化了一个SQLAlchemy对象,并将其附加到Flask应用程序上。我们还定义了一个名为User的类,该类继承了db.Model,这样就可以将类与数据库表映射起来。在类中,我们定义了三个属性:id、name和email,这些属性将映射到数据库表的列。我们还定义了一个__repr__()方法,该方法在打印User对象时返回用户名称。
ORM使用
使用ORM库封装数据库操作后,我们可以使用Python对象而不是SQL查询来操作数据库表。以下是一个使用SQLAlchemy的例子:
代码语言:javascript复制from flask import Flask, jsonify
from models import db, User
app = Flask(__name__)
@app.route('/users')
def get_users():
users = User.query.all()
return jsonify(users)
在这个例子中,我们使用了在上一节中定义的User类来操作数据库表。我们在Flask应用程序中定义了一个名为get_users()的路由函数,该函数查询所有用户,并使用jsonify()函数将结果转换为JSON格式。