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

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

在Flask-RESTful中,我们通常需要进行数据库操作,如增删改查等。为了使这些操作更加简单和方便,我们可以封装数据库操作,以便在应用程序的不同部分使用。

数据库操作封装

在进行数据库操作时,我们通常需要编写一些重复的代码,例如连接数据库、创建数据库游标、执行查询语句等。为了减少这些重复的代码,我们可以将它们封装到一个函数或类中。

以下是一个使用SQLite数据库的例子:

代码语言:javascript复制
import sqlite3

class Database:
    def __init__(self, db_name):
        self.db_name = db_name
        self.conn = None
        self.cursor = None

    def connect(self):
        self.conn = sqlite3.connect(self.db_name)
        self.cursor = self.conn.cursor()

    def close(self):
        if self.conn:
            self.conn.commit()
            self.cursor.close()
            self.conn.close()

    def execute(self, sql, params=None):
        if not self.conn:
            self.connect()
        if params:
            self.cursor.execute(sql, params)
        else:
            self.cursor.execute(sql)

        return self.cursor.fetchall()

在这个例子中,我们定义了一个名为Database的类,它封装了与SQLite数据库的连接和查询操作。在类的构造函数中,我们指定了要连接的数据库名称。在connect()方法中,我们使用sqlite3库中的connect()函数创建数据库连接,并使用cursor()函数创建数据库游标。在close()方法中,我们提交事务、关闭游标和关闭连接。在execute()方法中,我们执行SQL查询并返回结果。

数据库操作使用

在将数据库操作封装到类或函数中后,我们可以在应用程序的不同部分使用它们。以下是一个使用封装的SQLite数据库操作的例子:

代码语言:javascript复制
from flask import Flask, jsonify
from database import Database

app = Flask(__name__)
db = Database('my_app.db')

@app.route('/users')
def get_users():
    users = db.execute('SELECT * FROM users')
    return jsonify(users)

在这个例子中,我们使用了在上一节中定义的Database类来连接和查询SQLite数据库。我们在Flask应用程序中定义了一个名为get_users()的路由函数,该函数查询所有用户,并使用jsonify()函数将结果转换为JSON格式。

0 人点赞