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通过select实现异步IO的方法
Jun 04 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
python实现雨滴下落到地面效果
Jun 21 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
使用TFRecord存取多个数据案例
Feb 17 Python
python能自学吗
Jun 18 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
最新pycharm安装教程
Nov 18 Python
python 实现性别识别
Nov 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 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
php上传excel表格并获取数据
2017/04/27 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
对pandas中to_dict的用法详解
2018/06/05 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
经营理念口号
2014/06/21 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
创业计划书之酒吧
2019/12/02 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers