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
0
投稿
猜你喜欢
- 在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。我前段时间写
- 最近越来越多在博客上写些UX相关的内容作为分享,就涉及到跟普通博文不一样的文章建构问题。文章内容固然很重要,但排版、组织也是提高可读性和用户
- 这个话题是应腾讯ISD同仁之邀在WebReBuild三周年交流会上做的主题分享。由于临场等原因有些问题当时没有讲明白,回来后按原有思路形成了
- 在支持FSO的情况下,可以显示本站内的所有ASP页面的代码适用于代码演示时在效果页面上直接显示该页面的代码而不用再对代码制作专门的页面使用方
- iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。 1、下载libiconv函数库http://ftp.gnu
- asp编程手工定义参数的方法: Dim con As ADODB.Connection
- 成为一个顶级设计师的第一准则:限制你的字体让你成为设计大的七个基本原则之一好~设计大师,或者也太吹牛了吧,但根据下面七个基本原则至少你可以成
- 测试环境:1:xp系统2:双显,1680×1050 + 1050×16803:chrome 版本4.14:ff版本3.6chrome是我的默
- 这个是今年年初写的一篇,拿出来温习下。指针让程序结构变得混乱,也让程序执行效率提高,因此在oo的语言中不提倡指针的使用,使得程序结构清晰易读
- 目前,很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELE
- 简单的说,一个数据库管理系统应该的提供的基本服务有两种:1.数据访问。对每个数据库管理系,数据访问服务都包含一下几种(1)插入--向数据库中
- 随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.
- 内容摘要:在像网站首页这样的资源比较集中的页面中,那些栏目最经常被用户点击?居左居右对广告的点击率的影响是什么?“一切用数字说话”:以上问题
- 阅读上一篇教程:WEB2.0网页制作标准教程(10)自适应高度布局初步搭建起来,我开始填充里面的内容。首先是定义logo图片:样式表:#lo
- Insus.NET解决这个问题,只有创建另外一个表,将存储用户决定要跟踪的表,以及这个表中需要跟踪的字段。 还要创建另外一个表[Audit]
- 发现这个也是偶然,在测试的时候发现的,因此问题还发现一个bug。蛮有意思~ 假如输入http://www.aspxhome.com的话,在
- 如何用表单的方式推送请求的信息?具体见下:<html><head><title>答复用户信息
- div和span、relative和absolute、display和visibility是很容易混淆和弄错的HTML标签与CSS属性,简单
- 作为一个网页设计师,不知道各位是否有这样的经历:客户给你的网站材料很多都是Word文档,虽然阅读起来很
- 对于一个内容页的文章来说,如果这个文章内容过长或是其中有分类(排行),那么进行分页阅读无疑是最好的选择。如果一个文章内容不涉及分类,比如小说