Python requests用法和django后台处理详解
作者:张志强 发布时间:2023-06-12 02:05:42
标签:django,request,参数
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) # 保存到本地
来源:https://zhiqiang.org/coding/requests-and-django.html


猜你喜欢
- 前言本文提供将多个视频拼接为一个视频的Python工具代码,其中有一些限制条件,下面的代码说明会提到。环境依赖ffmpeg环境安装,可以参考
- SET @SQL = 'SELECT * FROM Comment with(nolock) WHERE 1=1 &nbs
- 我们用下了asp代码简单统计了下载一个文件需要的时间:<%Function DownloadTime(intFileSize
- 在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。 特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中
- /** * 递归法实现的快速排序 * @param $seq * @return array */f
- 在上篇博客中,我们已经实现了水平投影和垂直投影图的绘制。接下来,我们可以根据获得的投影数据进行图像的分割,该法用于文本分割较多,所以此处依然
- 首先我们利用NodeJs先构建一个基本的服务器。 index.js var requestHandler = require(".
- 本文实例讲述了python执行子进程实现进程间通信的方法。分享给大家供大家参考。具体实现方法如下:a.py:import subproces
- 说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,
- 在本文中,我挑选了15个最有用的软件包,介绍它们的功能和特点1. DashDash 是比较新的软件包,它是用纯 Python 构建数据可视化
- 高斯模糊的介绍与原理通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。"模糊"
- BN原理、作用函数参数讲解BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, tr
- 这篇文章中的内容是来源于去年我用美国的VPS搭建博客的初始阶段,那是有很多恶意访问,我就根据access log中的源IP来进行了很多统计,
- 这两条是关于IE环境中的CSS的。不要使用import引入CSS,可以避免内容的无样式瞬间(FOUC)问题。不要把样式的link放到页面后(
- 这是个删除非空目录的例子test.asp要执行删除你需要对该目录具有修改权限<% dim fso,tmpfold
- 本文实例讲述了Python实现二叉树及遍历方法。分享给大家供大家参考,具体如下:介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找
- 本文实例讲述了Python元组常见操作。分享给大家供大家参考,具体如下:不能修改的列表就叫做元组。1 访问元素元组是使用圆括号来标识的。 定
- 在 MySQL 主从复制时,有时候会碰到这样的故障:在 Slave 上 Slave_IO_Running 和 Slave_SQL_Runni
- js写常用导航鼠标下经过下方横线自动跟随html代码如下:<div class="header"> &nbs
- 打过了趟深圳回来后,已经快半个月,在广州购书中心逛了下,发现2本前端书《重构HTML-改善WEB应用的设计》、《CSS3 实战》,看了一半《