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导出DBF文件到Excel的方法
Jul 25 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
详解python3实现的web端json通信协议
Dec 29 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
python实现kmp算法的实例代码
Apr 03 Python
Python 3.8新特征之asyncio REPL
May 28 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
Python参数传递实现过程及原理详解
May 14 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
python 星号(*)的多种用途
Sep 21 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中看实例学正则表达式
2006/12/25 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
医药个人求职信范文
2014/01/29 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
考试作弊检讨书
2015/01/27 职场文书
端午节活动总结报告
2015/02/11 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
员工规章制度范本
2015/08/07 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
作文之亲情600字
2019/09/23 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang