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 相关文章推荐
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
python读取和保存视频文件
Apr 16 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
python 杀死自身进程的实现方法
Jul 01 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
python 元组的使用方法
Jun 09 Python
在CentOS7下安装Python3教程解析
Jul 09 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
php+mysql数据库查询实例
2015/01/21 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
Python标准库inspect的具体使用方法
2017/12/06 Python
关于Python作用域自学总结
2019/06/10 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
pygame实现打字游戏
2021/02/19 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
区域销售经理岗位职责
2013/12/10 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
酒店端午节活动方案
2014/08/26 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL