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正常时间和unix时间戳相互转换的方法
Apr 23 Python
Python配置mysql的教程(推荐)
Oct 13 Python
python登录并爬取淘宝信息代码示例
Dec 09 Python
python的常用模块之collections模块详解
Dec 06 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
详解python常用命令行选项与环境变量
Feb 20 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
Python类方法总结讲解
Jul 26 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将图片文件转换成二进制输出的方法
2015/06/10 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python读取Android permission文件
2013/11/01 Python
python中base64加密解密方法实例分析
2015/05/16 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
wxPython多个窗口的基本结构
2019/11/19 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
教师岗位职责范本
2013/12/29 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
教导处教学工作总结
2015/08/12 职场文书
小学信息技术教学反思
2016/02/16 职场文书