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的高级Git库 Gittle
Sep 22 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
Python素数检测实例分析
Jun 15 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Python flask框架post接口调用示例
Jul 03 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
基于Python解密仿射密码
Oct 21 Python
Python描述符descriptor使用原理解析
Mar 21 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 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
smarty section简介与用法分析
2008/10/03 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
JS画线(实例代码)
2013/11/20 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python匿名函数用法实例分析
2019/08/03 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
python实现操作文件(文件夹)
2019/10/31 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
普天C++笔试题
2016/03/20 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
天鹅的故事教学反思
2014/02/04 职场文书
行政管理专业求职信
2014/07/06 职场文书
七一讲话心得体会
2014/09/05 职场文书
中国世界遗产导游词
2015/02/13 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS