使用python通过连接api接口向数据库中创建数据

通过调用API获取股票数据,并把数据存入数据库表 创建并维护市盈率表 阅读详情

一、起因

在功能测试时需要测试商城购物车中加入商品总数,限制为100个如果手动添加购物车感觉很麻烦,为了后期自动化自动创建数据做准备决定使用python直接向数据库中创建数据(其实就是嫌麻烦),起初我直接使用pymysql连接数据库,因为我们使用的是阿里云服务器,我又没有权限所以连接不成功,后面通过chat发现可以直接连接api接口,通过访问接口向数据库中添加数据,我把两种方法都放在下面了,可以结合自己的实际情况选择方法

二、直接连接数据库

1、首先安装pymysql,直接在pycharm终端中安装即可

pip install pymysql

2、导入pymysql,创建数据库连接

users = generate_users(10)
create_users(users)
conn = pymysql.connect(
    host='127.0.0.1', # 连接名称,默认127.0.0.1
    user='username',  # 用户名
    passwd='123456',  # 密码
    port=3306,        # 端口,默认3306
    db='database',    # 数据库名称
    charset='utf8'    # 字符编码
)
print(conn)
# 创建游标
cursor = conn.cursor()

3、添加数据并提交

# 添加一条数据数据
def insertdata1():
    insert_sql = "insert into A.employee (name,age,phone) values ('张三',25,18510107183)"
    # 执行语句
    cursor.execute(insert_sql)
    # 提交数据
    conn.commit()

4、关闭连接

def closeconn():
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()

直接连接数据库可以一次添加多条,修改或删除,一次添加多条数据使用for循环在要添加的数据名称后加数字后缀即可,修改和删除修改sql语句即可

三、连接api接口创建数据

1、导入requests,连接api接口并向接口中加入数据

# 数据添加接口URL
data_url = 'http://your-api.wangzhi.com/api/mokuai'

# 设置请求头,包含token
headers = {
    'Authorization': your_token', # 添加token
    'Content-Type': 'application/json'
}

# 发送数据添加请求
user_data_list = [
    {'name': '测试部门1.1','pid': '0'},
    {'name': '测试部门1.2','pid': '0'}
    ]
for user_data in user_data_list:
    response = requests.post(data_url, json=user_data, headers=headers)

    # 检查响应状态码
    if response.status_code == 200:
        print(user_data, '创建成功', response.json())
    else:
        print(user_data, '创建失败', response.json())

2、操作中的问题

2.1、使用pickle保存token

在第一次连接的时候其实我忘记添加token导致报错,所以我直接将token保存在了headers中,但是每个token的时长都不一样,导致每次token到时限就需要重新获取token,所以我想通过登录保存token的方式代替每次手动更换token,这样每次直接执行就可以更换新的token。

2.1.1、验证是否存在pickle文件

在python中pickle是内部模块,不需要安装可以直接使用,直接引用pickle,在初次使用时pickle文件不存在t,运行后提示No such file or directory: './cache.pkl'。

import pickle

token = None
try:
    with open("./cache.pkl",'rb') as f:
        print(5,token)
        token = pickle.load(f)
        print(7,token)
except FileNotFoundError as e:
    print(e)
2.1.2、验证token是否存在,不存在则访问登录接口

之后验证token是否存在,若不存在则访问登录接口,重新获取token记录在pickle文件中,输入你自己的网址和登录时用到的参数及参数值。

if token:
    print(13,token)
    pass
else:
    # 认证接口URL-登录接口
    auth_url = 'http://your-api.wangzhi.com/api/login'
    # 认证信息
    auth_data = {
        'username': '135xxxx3537',
        'password': '123456',
        'key': '$2y$10$zuolhEAANJm59.7uER2j8OKS3Y75uPYfQvuBeSCkbx7ur29qBCEEO',
        'captcha': 'rmna'
    }
    # 发送认证请求
    response = requests.post(auth_url, json=auth_data)
2.1.3、验证两个状态码

最后验证http状态码及业务状态码是否正常,response.status_code == 200验证http状态码,我这里成功是200,再print出加response.json()来验证业务状态码,但是注意这里只是判断http状态码,也就是验证接口是否可以正常使用,若想再验证业务状态码可以自行调整。

# 检查响应状态码
    if response.status_code == 200:
        # 获取token
        token = response.json().get('data')
        print(31,token,response.json())
        with open("./cache.pkl",'wb') as f:
            pickle.dump(token,f)
    else:
        # raise Exception("Authentication failed")
        print("Authentication failed")

***print中前面的数字是行号,为了验证token是否正常获取到,验证问题,全部调整完成可以去掉一些print,或者直接调试

3、一些增强

3.1、通过faker直接造假数据

在创建数据时如果没有备用的信息就需要造一些假数据,或批量创造一些假数据

3.1.1、单个数据
# 初始化Faker
fake = Faker()
# 数据添加接口URL
data_url = 'http://aitest-api.shencaizhilian.com/api/departments'
# 生成假数据
data = {
    'name': fake.name()
}
# 设置请求头,包含token
headers = {
    'Authorization': f'Bearer {token}',
    'Content-Type': 'application/json'
}
# 发送数据添加请求1-1
response1_1 = requests.post(data_url, json=data, headers=headers)
# 检查响应状态码
if response1_1.status_code == 200:
    print(data, "创建成功", response1_1.json())
else:
    print("创建失败")
3.1.2、批量数据

在data处加个for循环就可以了

# 准备要插入的数据
data_to_create = []
for _ in range(100):  # 生成 100 条数据
    data = {
        'name': fake.name(),
        'email': fake.email()
    }
    data_to_create.append(data)

Python采集api接口数据导入Mysql 使用Python获取Api接口存入Mysql 阅读详情

相关推荐

elegant(ELEctron Generation ANd Tracking)入门指南(1)

elegant (ELEctron Generation ANd Tracking),美国先进光子源(APS)所用的圆环加速器的模拟程。

qq_41106132的博客 1847

kettle实现从api接口全量抽取数据到数据库中

kettle实现从api接口全量抽取数据到数据库中

Yuyuyu666dhdh的博客 8610

comsol移动网格_comsol模拟移动的纳秒脉冲激光烧蚀材料,温度场分布,结果总不理想,求助大佬!!...

本人comsol新手一枚,希望大家多多指点研究课题:纳秒脉冲激光刻蚀材料表面想用comsol模拟刻蚀过程中的温度场分布,脉宽为300ns,重复频率100kHz,光斑移动速度为5000mm/s,光斑直径50um,激光功率10W,材料种类为:有机涂层,属性如下目前,采用的是一个移动的高斯面光源x脉冲函数,脉冲函数我用的是一个周期性方波:周期性拓展后,画出来的脉冲图,不知道为什么在0~1s的区间内只有1...

weixin_33288893的博客 4742

API低代码平台介绍4-数据库记录插入功能

API低代码平台介绍-数据库记录插入功能

aiyo92的专栏 1604

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1124

管好 SAP Fiori Launchpad Content:技术目录、业务目录与 KPI 工具的完整治理思路

SAP Fiori Launchpad 作为企业级统一入口,需通过技术目录(源对象)和业务目录(引用编排)分层治理。技术目录由 Launchpad App Manager 维护,负责应用描述对象(Tile 和 Target Mapping)的创建与管理;业务目录由 Launchpad Content Manager 编排,通过引用技术目录对象实现灵活配置。分析型内容则通过 F2814 统一管理。这种分层设计支持应用复用,便于升级维护,是 SAP S/4HANA 项目中实现高效内容治理的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

请求阿里云API数据并将其存入数据库表

SpringBoot+Mybatis-plus+Navicat实现将网络请求得到的数据按时存储并更新到数据库表,并实现根据用户请求的字段信息进行查询。

2301_77877759的博客 869

PHP与Node.js的对比及优缺点分析

PHP和Node.js是两种常用的服务器端编程语言,它们在不同的应用场景下各有优势和劣势。本文将全方位比较PHP和Node.js的特点,以及它们在编程中的优缺点,并提供相应的源代码示例供参考。需要注意的是,本文只是对PHP和Node.js的一些优缺点进行了简要介绍,实际应用中还需要考虑其他因素,如团队经验、项目规模和预算等。最终的选择应该基于全面的评估和需求分析。PHP:PHP是一种同步阻塞的编程语言,它的处理方式是一次只处理一个请求。Node.js:Node.js的性能较高,特别适合处理高并发的请求。

ByteSparkX的博客 888

python如何查询数据库_python如何访问数据库

1.背景:python提供了很多数据库接口, 常用的数据库有 MS SQL Server /mysql /oracle 等。打开链接 https://wiki.python.org/moin/DatabaseInterfaces是python 关于数据库接口的一个总结 , 可以看到python支持的访问的数据库系统。2.模块:python 主要是通过模块和数据库连接的。2.1 安装模块:如果使用a...

weixin_39720662的博客 2186

Trae的付费之路还挺艰难,茫茫多的人想付付不了(附解决办法)

不得不说,Trae国际版这个付费其实整的挺复杂的,但没办法,毕竟有政策限制,付费成功后,你就是尊贵的Pro用户啦,使用Claude 4不排队还是挺爽的,而且600次其实不算少了,有一个小技巧,简单的问题就把模型切到Gemini-2.5-flag,因为使用这个模型是没有次数限制的。其次付费的时候有个ZIP Code,这东西也是个迷之存在,有的地区节点需要填,有的不需要,如果你选到了不需要填的节点,那很好,付费就行了,如果需要填,可以填一个51800试试。

cpp加油站的专栏 5880

数学建模学习(78):多输入多输出回归预测模型(结合XGBoost实现)

多输入多输出回归预测问题求解

全栈川川 8130

python db api下载_Python连接数据库学习之DB-API详解

前言大家都知道在Python中如果要连接数据库,不管是MySQL、SQL Server、PostgreSQL亦或是SQLite,使用时都是采用游标的方式,所以就不得不学习Python DB-API。Python所有的数据库接口程序都在一定程度上遵守 Python DB-API 规范。DB-API定义了一系列必须的对象和数据库存取方式,以便为各种底层数据库系统和多种多样的数据库接口程序提供一致的访问...

weixin_39998859的博客 357

Trae IDE项目开发全流程深度技巧与最佳实践

2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO

公众号:AI前沿侦探 160

python通过connect对象连接数据库对吗_Python连接数据库学习之DB-API详解

前言大家都知道在Python中如果要连接数据库,不管是MySQL、SQL Server、PostgreSQL亦或是SQLite,使用时都是采用游标的方式,所以就不得不学习Python DB-API。Python所有的数据库接口程序都在一定程度上遵守 Python DB-API 规范。DB-API定义了一系列必须的对象和数据库存取方式,以便为各种底层数据库系统和多种多样的数据库接口程序提供一致的访问...

weixin_39717110的博客 240

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python连接数据库命令_python2.7入门---操作mysql数据库增删改查

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase你可以访问Python数据库接口及API查看详...

weixin_39915668的博客 165

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python 学习笔记(八)—— 数据库操作

数据库编程接口、常见的数据库函数及其参数说明、数据库操作、游标对象、创建数据表

歆歆~黯了 1974

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python 操作 MySQL 数据库

MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。

Aforxiaoxie 1421

数据库和python有关系吗_想问一下,数据跟代码种类有关系么? 比如我用MySQL数据库,必须要用python或者JAVA之类的要求...

你可以访问python数据库接口及api查看详细的支持数据库列表。不同的数据库你需要下载不同的db api模块,例如你需要访问oracle数据库和mysql数据,你需要下载oracle和mysql数据库模块。db-api 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。python的db-api,为大多数的数据...

weixin_39981681的博客 142

python处理数据库_python-操作数据库

python DB-API介绍1.python标准数据库接口为 python DB-API,python DB-API为开发人员提供了数据库应用标称接口2.python数据库接口支持非常多的数据库,可以选择适合你项目的数据库:MySQLPostgreSQLMicrosoft SQL Server 2000OracleSybase具体查看:https://wiki.python.org/moin/D...

weixin_39723102的博客 216

python怎么操作mysql数据库_python操作mysql数据库

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase你可以访问Python数据库接口及API查看详...

weixin_39802055的博客 75

python适合哪种数据库_python连接数据库哪种好

python连接数据库推荐使用MySQLdb。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoftSQLServer2000InformixInterbaseOracleSybase推荐学习《python教程》不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysq...

weixin_34683262的博客 1149

基于python的数据库mysql处理与应用

python.数据库mysql Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 【PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。m...

lyjdw1999321的博客 678

什么用于创建python与数据库之间的连接_Python连接mysql数据库的正确姿势

Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。DB-API 是一个规范....

weixin_39841825的博客 144

python操作MySQL数据库

python 标准数据库的接口为python DB-API,,不同的数据库需要下载不同的DB API模块,DB API 定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供了一致的访问接口。 python DB-API为大多数的数据库实现了接口,使用它连接各种各样的数据库后,就可以用相同的方式操作各种数据库。 python DB-API使用流程:...

weixin_30815469的博客 135

python基础学习总结(十二)

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。GadFlymSQLMySQLPostgreSQLInformixInterbaseOracleSybase不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。

₍˄·͈༝·͈˄*₎◞ ̑̑的博客 1490

mysql打开db_Python 操作 MySQL 数据库

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase你可以访问Python数据库接口及API查看详...

weixin_29323551的博客 241
上一篇: 烟花代码1-1
Zsbug
博客等级 码龄3年 37粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值