PythonFlask中使用SQLAlchemy进行数据库连接
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,并定义了其属性 id、username 和 email。db.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 的官方文档来了解更多的用法和配置选项。
