網站首頁 編程語言 正文
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
相關推薦
- 2022-05-29 Docker向數據卷Volume寫入數據_docker
- 2023-07-05 go gorm想要查詢數據按照where in中的數據進行排序
- 2022-04-30 Django?RestFramework?全局異常處理詳解_python
- 2022-06-14 ASP.NET?Core?MVC中的布局(Layout)_基礎應用
- 2022-10-29 設置html按鈕點擊事件失效
- 2022-07-06 windows清理系統垃圾bat腳本及使用步驟_DOS/BAT
- 2022-10-26 如何查看git分支從哪個源分支拉的_相關技巧
- 2023-06-21 Docker安裝部署Redis數據庫的實現步驟_docker
- 最近更新
-
- 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同步修改后的遠程分支