sqlalchemy批量添加数据-数据源是json
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sqlalchemy批量添加数据-数据源是json,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1693字,纯文字阅读大概需要3分钟。
内容图文
![sqlalchemy批量添加数据-数据源是json](/upload/InfoBanner/zyjiaocheng/894/14ca280fb2f44c03a18a902bc300948a.jpg)
需求:
想要写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全部内容,希望文章能够帮你解决sqlalchemy批量添加数据-数据源是json所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。