網站首頁 編程語言 正文
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
相關推薦
- 2023-01-08 Go設計模式原型模式考查點及使用詳解_Golang
- 2023-02-07 k8s集群部署時etcd容器不停重啟問題以及處理詳解_云和虛擬化
- 2022-05-13 python魔法方法之__setattr__()_python
- 2024-01-06 SpringBoot3集成RocketMQ
- 2023-02-10 jupyter?notebook如何使用matlab_python
- 2021-12-09 C++中的編譯與鏈接_C 語言
- 2022-04-22 C#基于WinForm實現串口通訊_C#教程
- 2022-05-10 V-for中通過變量+索引實現單獨控制
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支