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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
让python在hadoop上跑起来
Jan 27 Python
Python多层装饰器用法实例分析
Feb 09 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
Python中Qslider控件实操详解
Feb 20 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中var_export与var_dump的区别分析
2010/08/21 PHP
php格式化金额函数分享
2015/02/02 PHP
CentOS安装php v8js教程
2015/02/26 PHP
分享php多功能图片处理类
2016/05/15 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
javascript新手语法小结
2008/06/15 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
微信小程序页面上下滚动效果
2020/11/18 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python中的闭包详细介绍和实例
2014/11/21 Python
python获取目录下所有文件的方法
2015/06/01 Python
Python实现的knn算法示例
2018/06/14 Python
Python随机数函数代码实例解析
2020/02/09 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
为什么要有struct关键字
2012/05/08 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
会计学应届毕业生推荐信
2013/11/04 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
召开会议通知范文
2015/04/15 职场文书
债务追讨律师函
2015/06/24 职场文书
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技