flask_sqlalchemy 批量插入例子
时间: 2023-09-09 10:14:13 浏览: 97
以下是使用 Flask SQLAlchemy 执行批量插入的例子:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost/db_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
@app.route('/insert', methods=['POST'])
def insert_users():
users = request.get_json()
# 将用户列表转换为 User 对象列表
user_objects = [User(name=name) for name in users]
# 批量插入 User 对象列表
db.session.bulk_save_objects(user_objects)
# 提交事务
db.session.commit()
return 'Users inserted successfully!'
```
在上面的代码中,我们首先定义了一个 User 模型,然后在 `/insert` 路由中接收一个包含多个用户名的 JSON 请求体。接着,我们将用户名转换为 User 对象列表,并使用 `bulk_save_objects` 方法执行批量插入。最后,我们提交事务并返回插入成功的消息。
需要注意的是,由于批量插入不会触发 `insert` 事件,因此我们需要手动调用 `commit` 方法提交事务。另外,批量插入操作的性能通常比逐一插入要高,因此在需要插入大量数据时,批量插入是一个不错的选择。
阅读全文