欢迎访问宙启技术站
智能推送

PythonFlask中使用SQLAlchemy进行数据库连接

发布时间:2024-01-14 10:16:44

SQLAlchemy 是一个 Python 第三方库,为我们提供了统一的 SQL 数据库访问接口。它可以与多个数据库进行交互,包括 MySQL、PostgreSQL、SQLite 等。

在使用 SQLAlchemy 连接数据库之前,我们需要先安装它。可以通过 pip 命令进行安装:

pip install SQLAlchemy

接下来我们需要创建一个 Flask 应用,并在应用中创建数据库连接。下面是一个使用 SQLAlchemy 连接 SQLite 数据库的示例代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'  # 数据库连接 URI
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username

@app.route('/')
def index():
    # 创建用户对象
    user = User(username='John Doe', email='john@example.com')
    # 将用户对象添加到数据库会话中
    db.session.add(user)
    # 提交会话,将用户对象保存到数据库中
    db.session.commit()
    return 'User added to database'

if __name__ == '__main__':
    app.run()

在上面的代码中,我们首先创建了一个 Flask 应用,并将 SQLite 数据库的 URI 配置到应用中。然后我们使用 SQLAlchemy 类创建了一个数据库连接对象 db

接下来,我们创建了一个数据模型 User,并定义了其属性 idusernameemaildb.Model 是 SQLAlchemy 提供的基类,用于表示数据库模型。

在视图函数 index 中,我们创建了一个 User 对象,并将其添加到数据库会话中。然后通过调用 db.session.commit() 提交会话,将用户对象保存到数据库中。

运行应用后,当访问首页时,用户对象就会被保存到数据库中。

除了添加和保存数据,SQLAlchemy 还提供了其他常用的数据库操作方法,如查询、更新和删除数据。

例如,下面是一个查询所有用户的例子:

@app.route('/users')
def get_users():
    users = User.query.all()
    return 'Users: {}'.format(users)

在上面的代码中,我们使用 User.query 查询所有用户对象,并通过调用 .all() 获取查询结果。

除了 .all() 方法,还有 .first() 方法可以查询第一个结果,.filter() 方法可以加入过滤条件等。

这些只是 SQLAlchemy 的一些基本用法,实际项目中可能还需要更多的数据库操作,可以参考 SQLAlchemy 的官方文档来了解更多的用法和配置选项。