Python?requests用法和django后臺(tái)處理詳解
1、requests 的常見用法
requests 除了 url 之外,還有 params, data 和 files 三個(gè)參數(shù),用于和服務(wù)器后臺(tái)交互。
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、在提交時(shí)附加文件:
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、保持狀態(tài)
使用 session 保持狀態(tài),先登錄,再提交表格:
session = requests.Session() session.get(login_url, params) session.post(form_submit_url, data)
1.5、查看結(jié)果
最重要的是status_code、reason和content三個(gè)成員變量:
r = requests.post(url, files=files, data=data, params=params) if r.status_code != 200: print(r.status_code, r.reason) # 打印出錯(cuò)信息。 else: print(r.content) # 服務(wù)器返回結(jié)果
2、django 的處理
2.1、params 傳入的參數(shù)
對(duì)于 requests 通過 params 傳入的參數(shù),可以通過request.GET獲取:
def handler(request): return request.GET["pool"] # 若未傳入?yún)?shù),將拋出異常 # return request.GET.get("pool") # 當(dāng)沒有傳入該參數(shù)時(shí),返回None # return request.GET.get("pool", "abc") # 默認(rèn)為abc
2.2、data 傳入的參數(shù)
對(duì)于 requests 通過 data 傳入的參數(shù),可以通過request.POST獲取:
def handler(request): return request.POST["user"] # 若未傳入?yún)?shù),將拋出異常 # return request.POST.get("user") # 當(dāng)沒有傳入該參數(shù)時(shí),返回None # return request.POST.get("user", "abc") # 默認(rèn)為abc
2.3、files 傳入的參數(shù)
對(duì)于 requests 通過 files 傳入的參數(shù),可以通過request.FILES獲?。?/p>
def handler(request): for file in request.FILES.getlist("files"): name = file.name content = file.file.read() # is binary open(name, "wb").write(content) # 保存到本地
總結(jié)
到此這篇關(guān)于Python requests用法和django后臺(tái)處理的文章就介紹到這了,更多相關(guān)requests用法和django后臺(tái)處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python新手們?nèi)菀追傅膸讉€(gè)錯(cuò)誤總結(jié)
python語言里面有一些小的坑,特別容易弄混弄錯(cuò),初學(xué)者若不注意的話,很容易坑進(jìn)去,下面我給大家深入解析一些這幾個(gè)坑,希望對(duì)初學(xué)者有所幫助,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04Python的幾個(gè)高級(jí)語法概念淺析(lambda表達(dá)式閉包裝飾器)
本文主要記錄自己對(duì)幾個(gè)高級(jí)語法概念的理解:匿名函數(shù)、lambda表達(dá)式、閉包、裝飾器。這幾個(gè)概念并非Python特有,但本文只限于用Python做說明2016-05-05Python詳細(xì)對(duì)比講解break和continue區(qū)別
這篇文章主要介紹了python循環(huán)控制語句 break 與 continue,break就像是終止按鍵,不管執(zhí)行到哪一步,只要遇到break,不管什么后續(xù)步驟,直接跳出當(dāng)前循環(huán)2022-06-06python logging 日志輪轉(zhuǎn)文件不刪除問題的解決方法
最近在維護(hù)項(xiàng)目的python項(xiàng)目代碼,項(xiàng)目使用了 python 的日志模塊 logging, 設(shè)定了保存的日志數(shù)目, 不過沒有生效,還要通過contab定時(shí)清理數(shù)據(jù)2016-08-08解決python3中os.popen()出錯(cuò)的問題
在本篇文章里小編給大家整理的是一篇關(guān)于解決python3中os.popen()出錯(cuò)的問題的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。2020-11-11Python+django實(shí)現(xiàn)簡單的文件上傳
這篇文章主要為大家詳細(xì)介紹了Python+django實(shí)現(xiàn)簡單的文件上傳的相關(guān)代碼,感興趣的小伙伴們可以參考一下2016-08-08Python continue繼續(xù)循環(huán)用法總結(jié)
本篇文章給大家總結(jié)了關(guān)于Python continue繼續(xù)循環(huán)的相關(guān)知識(shí)點(diǎn)以及用法,有需要的朋友跟著學(xué)習(xí)下吧。2018-06-06