Python - requests

目录

前言:

安装及验证:

使用:

传参方式: 

连续接口请求:

目前遇到的比较严重问题:

1. 使用session()连续请求时状态码401

连接数据库:


前言:

 别人文章: 废话不说, 直接上代码, 我的文章: 废话很多, 代码不多 

安装及验证:

直接命令行输入进行安装: 

pip3 install requests

安装完成后可以在PyCharm中导入, 以此验证是否安装成功

import requests

使用:

尝试使用requests进行接口请求

# 第一步, 先导入模块
import requests

# 第二步, 创建接口请求对象, 比如是个get请求方式
re = requests.get(https://www.baidu.com)


# 第三步, 接口请求完成后, 查看接口返回相关信息
print(re.status_code)

除了有获取状态码的方法, 还有一些其他常用的方法:

1. json()             接口返回的信息,  以json形式展示

2. text                接口返回的信息,  以text形式展示

3. headers         返回接口的响应头信息

Python requests 模块 | 菜鸟教程 (runoob.com)

传参方式: 

有的接口请求是需要参数的, 具体使用哪个形参去传, 要看这个接口的请求头

后来才知道, 不同的请求头, 传参方式也不一样, 可以看出我是真的没什么经验.`.`

1. content-type: application/json                                      使用json传参

2. content-type: application/x-www-form-urlencoded      使用data传参

3. 没有content-type                                                         使用params传参

4. content-type: multipart/form-data                                使用files传参

5. content-type: text/plain                                                使用data传参

连续接口请求:

使用requests.get()这样的, 只是单接口的请求, 如果想要进行连续请求, 需要每次请求接口时都要传固定的参数Cookie什么的, 比较麻烦
可以使用创建session()来进行一个连续请求会话, session()会自动保持cookie的传递, 要注意的是, 
requests.session()只能保持 cookiejar 类型的cookie,

import requests

session = requests.session()

目前遇到的比较严重问题:

1. 使用session()连续请求时状态码401

之前只知道session可以自动处理cookie保持连续会话状态, 但是当我真正使用时session()登录完成, 准备进行第二次接口请求后, 状态码一直是401(未登录), 后来抓包发现是登录后的响应头里使用的是token, 而在requests.session()中发现登录后响应头中没有自动保存token, 手动更新下好了

import requests


ip = "xxxxs://xxxxxx.xxx"

datas = {
    "username": "xxxxxxxx",
    "password": "xxxxxxxx"
}

session = requests.session()

# 登录
login = session.request("post", f"{ip}/app-apis/login/pwd_login", json=datas)

# 手动更新session的头部信息, 添加token参数为登录后的token
session.headers["token"] = login.headers["token"]


# 只有登录后才能请求的接口, 比如获取个人信息
userinfo = session.request("get", f"{ip}/app-apis/current_user/info")
print(userinfo.json())

连接数据库:

因为测完接口的话一般都要去数据库查询数据是否准确, 所以可以这里再记录下如何操作数据库,

Python连接数据库基本还是比较简单的, 不论什么数据库基本操作方式都是一样的, 

需要连接哪个数据库, 就先安装哪个数据库的模块

比如我这里用的是PostgreSQL, 对应的模块就是psycopg2, 哈哈, 我是网上搜索后知道的

pip3 install psycopg2

安装后打开Pycharm

import psycopg2

# 先建立连接
connection = psycopg2.connect(
    user="xxxx",
    password="xxx",
    host="xxx",
    port="xxxx",
    database="xxx"
)
"""
psycopg2
- *dbname*:数据库名称
- *database*:数据库名称(仅作为关键字参数)
- *user*:用于验证的用户名
- *password*:用于验证的密码
- *host*:数据库主机地址(如果未提供,则默认为UNIX套接字)
- *port*:连接端口号(如果未提供,默认为5432)

"""

# 创建游标, 什么是游标呢? 我也不知道, 不过有了游标才能执行sql语句
cursor = connection.cursor()
# 执行SQL: 先创建一个查询的sql, 然后使用游标执行
query = "SELECT ......."
cursor.execute(query)

"""
除了查询语句, 其他语句都需要额外进行一步提交的操作
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   connection.commit()
except:
   # 发生错误时回滚
   connection.rollback()
"""

# 输出返回信息
for i in cursor:
    print(i)

# 执行完成后关闭连接: 先关闭游标,再关闭连接
cursor.close()
connection.close()

连接mysql的, Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程 (runoob.com)

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值