首页 > 数据库技术 > 详细

sqlalchemy批量添加数据-数据源是json

时间:2019-08-26 18:59:41      阅读:110      评论:0      收藏:0      [点我收藏+]

 

需求:

想要写1个增加case的接口

问题:

sqlalchemy添加case的方式,只能是1条数据1条数据的插入,像这样:

1   ro2 = Role(name=user)
2     db.session.add_all([ro1])
3     db.session.commit()

我希望的效果是这样的:

我传入一个字典{‘name‘:‘lisa‘},然后自动转化成name=‘lisa’这样的格式

接口的参数是一组dict类型的数据,每一组数据即视为1条case,通过程序将json传过来的数据对号入座

 1 a=[{name:lisa},{name:bob}]
 2 
 3 case=[]
 4 for i in a: #i={‘name‘:‘lisa‘}
 5     name=i[name] #name=‘lisa‘
 6 
 7     obj = Role(name=name)#obj=<Role ‘lisa‘>
 8     case.append(obj)
 9 print(case)#[<Role ‘lisa‘>, <Role ‘bob‘>]
10 db.session.add_all(case)
11 db.session.commit()

 

 

完整的代码如下:

 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 
 4 from flask import Flask
 5 from flask_sqlalchemy import SQLAlchemy
 6 
 7 app = Flask(__name__)
 8 
 9 # 设置连接数据库的URL
10 app.config[SQLALCHEMY_DATABASE_URI] =mysql+mysqlconnector://root:admin123456@10.1.71.32:3306/test
11 
12 # 设置每次请求结束后会自动提交数据库的改动
13 app.config[SQLALCHEMY_COMMIT_ON_TEARDOWN] = True
14 app.config[SQLALCHEMY_TRACK_MODIFICATIONS] = True
15 
16 # 查询时显示原始SQL语句
17 app.config[SQLALCHEMY_ECHO] = False
18 db = SQLAlchemy(app)
19 
20 
21 class Role(db.Model):
22     __tablename__ = roles
23     id = db.Column(db.Integer, primary_key=True)
24     name = db.Column(db.String(64))
25 
26     def __repr__(self):
27         return <Role %r> % self.name
28 
29 
30 #数据源-要批量添加的case数据 list套dict
31 a=[{name:lisa},{name:bob}]
32 
33 case=[]
34 for i in a: #i={‘name‘:‘lisa‘}
35     name=i[name] #name=‘lisa‘
36 
37     obj = Role(name=name)#obj=<Role ‘lisa‘>
38     case.append(obj)
39 print(case)#[<Role ‘lisa‘>, <Role ‘bob‘>]
40 db.session.add_all(case)
41 db.session.commit()

结果:可以循环插入多条数据

技术分享图片

 

sqlalchemy批量添加数据-数据源是json

原文:https://www.cnblogs.com/kaerxifa/p/11413759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!