Flask-RESTfu数据库操作的封装和使用(二)

2023-05-06 16:08:41 浏览数 (2)

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格式。

0 人点赞