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 16 Python
Python爬取Coursera课程资源的详细过程
Nov 04 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
Jupyter加载文件的实现方法
Apr 14 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
python中的插入排序的简单用法
Jan 19 Python
详解用 python-docx 创建浮动图片
Jan 24 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
?繁体转换的class
2006/10/09 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
JS控制日期显示的小例子
2013/11/23 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
微信小程序表单验证功能完整实例
2017/12/01 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
大学毕业自我鉴定范文
2014/02/03 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
高三毕业寄语
2014/04/10 职场文书
企业委托书范本
2014/09/13 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
小学班主任事迹材料
2014/12/17 职场文书
第二次离婚起诉书
2015/05/18 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
大学生入党自传2015
2015/06/26 职场文书
总经理年会致辞
2015/07/29 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
课题研究阶段性总结
2015/08/13 职场文书
详解Redis瘦身指南
2021/05/26 Redis
MySQL库表名大小写的选择
2021/06/05 MySQL
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL