最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的post請(qǐng)求解讀

 更新時(shí)間:2024年11月18日 11:11:59   作者:dair6  
文章介紹了Python中POST請(qǐng)求的4種編碼方式:application/x-www-form-urlencoded、multipart/form-data、application/json和text/xml,通過(guò)代碼示例和工具使用,展示了如何發(fā)送和處理這些請(qǐng)求

python post請(qǐng)求

post請(qǐng)求有4中編碼方式

1.application/x-www-form-urlencoded

application/x-www-form-urlencoded是瀏覽器原生的form表單

提交的數(shù)據(jù)會(huì)按照key1=val1&key2=val2的格式,經(jīng)過(guò)url轉(zhuǎn)碼,然后傳輸

(1)發(fā)送post請(qǐng)求

我們除了可以直接編寫(xiě)代碼發(fā)送post請(qǐng)求,也可以使用postman來(lái)構(gòu)造post請(qǐng)求

使用代碼:

import requests

url = 'https://www.xxxxxx.com/'
# 需要注意的是Content-Length參數(shù)如果沒(méi)有,data表單則不會(huì)隨著請(qǐng)求被發(fā)送給服務(wù)端,且使用fiddler抓包的過(guò)程中,也無(wú)法看到data表單
headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length':'<calculated when request is sent>'
}
data = {'a': 1, 'b': 2,'c':'測(cè)試'}
result = requests.post(url, headers=headers, data=data)
print(result.content.decode('utf-8'))

使用postman

(2)截獲post請(qǐng)求,使用fiddler

(3)接收post請(qǐng)求,返回響應(yīng)

使用django3的版本,目錄結(jié)構(gòu)如下

settings的配置

主路由的配置

from django.contrib import admin
from django.urls import path, re_path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 將主路由和子路由綁定
    path('', include('gp_app.urls')),
]

子路由的配置

from django.urls import re_path
from . import views

urlpatterns = [
    # name用于給視圖命名,可以通過(guò)reverse反向解析
    re_path(r'try_get/', views.get, name='get請(qǐng)求'),
    re_path(r'try_post', views.post, name='post請(qǐng)求')
]

views.py的配置

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.
def get(request):
    if request.method == 'get':
        print(request.GET.getlist('c'))
        pass
    return HttpResponse("ok")


def post(request):
    if request.method == 'POST':
        print("request.method:", request.method)
        print("request.POST.getlist('a'):", request.POST.getlist('a'))
        print("request.POST.getlist('b'):", request.POST.getlist('b'))
        print("request.POST.getlist('c'):", request.POST.getlist('c'))
        print("request.POST:", request.POST)
        a = request.POST.get('a', 0)
        c = request.POST.get('c', 0)
        d = str({a: c})  # 需要注意的是,如果要使用HttpResponse來(lái)返回響應(yīng),參數(shù)需要是字符串,d如果不轉(zhuǎn)換成str,返回的結(jié)果就是1
        return HttpResponse(d)

運(yùn)行django之后,控制臺(tái)的結(jié)果

(4)data表單使用嵌套的數(shù)據(jù)結(jié)構(gòu)如何處理

情況1:使用json_dumps

postData = {
					 'tid': 1'', 
                      'data': [{'name': 'rqlx', 'value': '0', 'sword': 'attr'},{'name': 'rq1', 'value': '1', 'sword': 'attr'}], 
                      'bindParam': 'true'
                      }
# 注意json.dumps轉(zhuǎn)換成json格式,或許也能寫(xiě)成
# data = json.dumps({'postData':{ 'tid': 1'', 'data': [{'name': 'rqlx', 'value': '0'},{'name': 'rq1', 'value': '1'}], 'bindParam': 'true'}})
# 將json.dumps放在外層
data = {
				'postData':json.dumps(postData)
           }
resp = requests.post(
   url=url,
   data=data,
   headers=headers,
   # cookies=dict_cookie,  # cookie也可以用字典的形式寫(xiě)到headers,類似于'Cookie':'xxxxxxxxxx'
   timeout=240,
)

情況2:使用url編碼

有的時(shí)候表單提交時(shí),需要先進(jìn)行url轉(zhuǎn)碼,關(guān)鍵在于后端到底要接收什么類型的數(shù)據(jù),如果我們不知道后端能處理的數(shù)據(jù),有時(shí)就只能靠猜,用不同的方法嘗試將表單處理成能被后端解析的格式

from urllib.parse import urlencode
data = {‘a(chǎn)': 1, ‘b': 2,‘c':‘測(cè)試'}
data =urlencode(data)
resp = reuquest.post(url=url,headers=headers,data=data)

2.multipart/form-data

  • multipart/form-data是常用來(lái)上傳文件的表單
  • application/json
  • text/xml

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django 簡(jiǎn)單實(shí)現(xiàn)分頁(yè)與搜索功能的示例代碼

    Django 簡(jiǎn)單實(shí)現(xiàn)分頁(yè)與搜索功能的示例代碼

    這篇文章主要介紹了Django 簡(jiǎn)單實(shí)現(xiàn)分頁(yè)與搜索功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 在Django中管理Users和Permissions以及Groups的方法

    在Django中管理Users和Permissions以及Groups的方法

    這篇文章主要介紹了在Django中管理Users和Permissions以及Groups的方法,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟

    python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟

    我們?cè)谶M(jìn)行算法評(píng)估是通常會(huì)針對(duì)每個(gè)樣本的算法處理結(jié)果進(jìn)行統(tǒng)計(jì),例如每個(gè)樣本正確預(yù)測(cè)數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟,感興趣的朋友可以參考下
    2023-12-12
  • 詳解如何使用SQLAlchemy連接數(shù)據(jù)庫(kù)

    詳解如何使用SQLAlchemy連接數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了如何使用 SQLAlchemy 連接數(shù)據(jù)庫(kù)、建立模型、操作表、以及查詢操作表數(shù)據(jù)等內(nèi)容,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 在Python中使用SimpleParse模塊進(jìn)行解析的教程

    在Python中使用SimpleParse模塊進(jìn)行解析的教程

    這篇文章主要介紹了在Python中使用SimpleParse模塊進(jìn)行解析的教程,文章來(lái)自于IBM官方的開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • python實(shí)現(xiàn)類似Netty功能的異步編程

    python實(shí)現(xiàn)類似Netty功能的異步編程

    本文將介紹如何使用Python來(lái)實(shí)現(xiàn)本文將介紹如何使用Python來(lái)實(shí)現(xiàn)類似于Netty的功能,并提供一些代碼示例來(lái)幫助讀者理解,能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • python中rb含義理解

    python中rb含義理解

    在本篇文章里小編給大家整理的是關(guān)于python中rb含義及用法內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python中常用的統(tǒng)計(jì)檢驗(yàn)代碼分享

    Python中常用的統(tǒng)計(jì)檢驗(yàn)代碼分享

    統(tǒng)計(jì)檢驗(yàn)是數(shù)據(jù)分析中的重要工具,用于檢驗(yàn)數(shù)據(jù)集中的差異、關(guān)聯(lián)和分布等統(tǒng)計(jì)性質(zhì),本文為大家整理了常見(jiàn)的統(tǒng)計(jì)檢驗(yàn)方法,希望對(duì)大家有所幫助
    2024-01-01
  • python新手練習(xí)實(shí)例之萬(wàn)年歷

    python新手練習(xí)實(shí)例之萬(wàn)年歷

    最近進(jìn)行python基礎(chǔ)培訓(xùn),課下作業(yè)制作萬(wàn)年歷,之前沒(méi)做過(guò),感覺(jué)里面還是有很多需要學(xué)的,下面這篇文章主要給大家介紹了關(guān)于python新手練習(xí)實(shí)例之萬(wàn)年歷的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Jupyter Lab無(wú)法打開(kāi)終端窗口的解決方法

    Jupyter Lab無(wú)法打開(kāi)終端窗口的解決方法

    本文主要介紹了Jupyter Lab無(wú)法打開(kāi)終端窗口的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論

庆城县| 日喀则市| 楚雄市| 和林格尔县| 德令哈市| 大城县| 池州市| 迁安市| 黎平县| 阿坝| 阿拉尔市| 九寨沟县| 望江县| 邯郸县| 萍乡市| 岳池县| 九龙坡区| 六盘水市| 平乐县| 西畴县| 锦屏县| 大理市| 横峰县| 车险| 黄大仙区| 临清市| 曲靖市| 昌乐县| 沿河| 若尔盖县| 河津市| 金秀| 南投县| 铅山县| 囊谦县| 武夷山市| 合水县| 通化市| 蕉岭县| 胶州市| 水城县|