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 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
Python读写zip压缩文件的方法
Aug 29 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
基于python连接oracle导并出数据文件
Apr 28 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 07 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代码把全角数字转为半角数字
2007/12/10 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python+django实现简单的文件上传
2016/08/17 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
Python中请不要再用re.compile了
2019/06/30 Python
Python简易版停车管理系统
2019/08/12 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
const和static readonly区别
2013/05/20 面试题
DTD的含义以及作用
2014/01/26 面试题
作风整顿剖析材料
2014/09/30 职场文书
升职感谢信
2015/01/22 职场文书
研究生个人学年总结
2015/02/14 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
python函数的两种嵌套方法使用
2022/04/02 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers