Python requests用法和django后台处理详解


Posted in Python onMarch 19, 2022

1、requests 的常见用法

requests 除了 url 之外,还有 params, data 和 files 三个参数,用于和服务器后台交互。

1.1、提交查询

注意 get 只支持 params ,不支持 data 和 files。

requests.get(login_url, params={
    "user": user, 
    "password": password, 
})

1.2、提交表格

注意,requests.post既支持data,也支持params:

requests.post(form_submit_url, data={
    "user": user, 
    "password": password, 
},  params={
    "pool": pool, 
})

1.3、在提交时附加文件:

files = ["a.csv", "b.xml"]

# 注意file需要以binary形式打开。
files = [("files", (os.path.basename(file), open(file, "rb")))
         for file in files]

r = requests.post(url, files=files, data=data, params=params)

1.4、保持状态

使用 session 保持状态,先登录,再提交表格:

session = requests.Session()
session.get(login_url, params)
session.post(form_submit_url, data)

1.5、查看结果

最重要的是status_code、reason和content三个成员变量:

r = requests.post(url, files=files, data=data, params=params)

if r.status_code != 200:
    print(r.status_code, r.reason) # 打印出错信息。
else:
    print(r.content)  # 服务器返回结果

2、django 的处理

2.1、params 传入的参数

对于 requests 通过 params 传入的参数,可以通过request.GET获取:

def handler(request):
    return request.GET["pool"]       # 若未传入参数,将抛出异常
    # return request.GET.get("pool") # 当没有传入该参数时,返回None
    # return request.GET.get("pool", "abc") # 默认为abc

2.2、data 传入的参数

对于 requests 通过 data 传入的参数,可以通过request.POST获取:

def handler(request):
    return request.POST["user"]       # 若未传入参数,将抛出异常
    # return request.POST.get("user") # 当没有传入该参数时,返回None
    # return request.POST.get("user", "abc") # 默认为abc

2.3、files 传入的参数

对于 requests 通过 files 传入的参数,可以通过request.FILES获取:

def handler(request):
    for file in request.FILES.getlist("files"):
        name = file.name
        content = file.file.read()      # is binary
        open(name, "wb").write(content) # 保存到本地

总结

到此这篇关于Python requests用法和django后台处理的文章就介绍到这了,更多相关requests用法和django后台处理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
Python正规则表达式学习指南
Aug 02 Python
Python实现打印螺旋矩阵功能的方法
Nov 21 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python 产生token及token验证的方法
Dec 26 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
Python实现Selenium自动化Page模式
Jul 14 Python
解决python tkinter界面卡死的问题
Jul 17 Python
Python制作词云图代码实例
Sep 09 Python
Python编写打字训练小程序
Sep 26 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
Python实现Hash算法
Mar 18 #Python
python实现会员信息管理系统(List)
Mar 18 #Python
Python实现归一化算法详情
Mar 18 #Python
python实现会员管理系统
Mar 18 #Python
Python内置数据类型中的集合详解
Python集合set()使用的方法详解
Mar 18 #Python
基于Python实现流星雨效果的绘制
You might like
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
js制作提示框插件
2020/12/24 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python在非root权限下的安装方法
2018/01/23 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python如何执行系统命令
2020/09/23 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
法学专业应届生求职信
2013/10/16 职场文书
自荐书范文范例
2014/02/13 职场文书
护士长竞聘书
2014/03/31 职场文书
学生检讨书范文
2019/06/24 职场文书
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang