zoukankan      html  css  js  c++  java
  • sqlalchemy批量添加数据-数据源是json(小算法)

     

    需求:

    想要写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()

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

     

  • 相关阅读:
    WebApi下载附件文件
    zabbix
    redis主从与集群搭建
    redis
    mariadb集群配置(主从和多主)
    使用python执行sql语句和外键解析
    mariadb(四)连接查询,视图,事物,索引,外键
    mariadb(三)查
    mariadb(二)增删改
    firewalld
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11413759.html
Copyright © 2011-2022 走看看