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处理json字符串转化为字典的简单实现
Jul 07 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
python调用百度语音REST API
Aug 30 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
Python线程指南分享
Nov 19 Python
python要安装在哪个盘
Jun 15 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
python调用百度API实现人脸识别
Nov 17 Python
python中PyQuery库用法分享
Jan 15 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 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
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
我的javascript 函数链之演变
2011/04/07 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python找出9个连续的空闲端口
2016/02/01 Python
python安装与使用redis的方法
2016/04/19 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
Python简易版停车管理系统
2019/08/12 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python实现连连看游戏
2020/02/14 Python
Django 解决由save方法引发的错误
2020/05/21 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
异步传递消息系统的作用
2016/05/01 面试题
施工协议书范本
2014/04/22 职场文书
团队激励口号
2014/06/06 职场文书
离婚财产分配协议书
2014/10/21 职场文书
迟到检讨书
2015/01/26 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python