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 03 Python
Python的装饰器使用详解
Jun 26 Python
Python tkinter事件高级用法实例
Jan 31 Python
Django实战之用户认证(初始配置)
Jul 16 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
python程序封装为win32服务的方法
Mar 07 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
关于python的缩进规则的知识点详解
Jun 22 Python
Python Selenium异常处理的实例分析
Feb 28 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
Add a Formatted Table to a Word Document
2007/06/15 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
常用的js方法合集
2017/03/10 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
JS实现小星星特效
2019/12/24 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
铭立家具面试题
2012/12/06 面试题
幼儿园六一儿童节活动方案
2014/08/26 职场文书
学校捐款活动总结
2015/05/09 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL