CMDB之客戶端實現

2022-04-10 19:22:56 字數 4006 閱讀 7268

返回文字字串

api

def api(request):

if request.method == 'post':

print(request.post)

k1, k2 = request.post.get('k1')[0], request.post.get('k2')[0]

return jsonresponse(, json_dumps_params=)

if request.method == 'get':

host_list = ['xmaster', 'xminion']

return jsonresponse(host_list, safe=false) # jsonresponse如果返回列表, 需要加上safe=false

客戶端

url = ''

response = requests.get(url=url) # ["xmaster", "xminion"] print(response.text, type(response.text))

輸出結果

["xmaster", "xminion"]

返回原本的資料型別, 比如說在服務端序列化前的資料型別是列表, 則最後返回列表

api

def api(request):

if request.method == 'post':

print(request.post)

k1, k2 = request.post.get('k1')[0], request.post.get('k2')[0]

return jsonresponse(, json_dumps_params=)

if request.method == 'get':

host_list = ['xmaster', 'xminion']

return jsonresponse(host_list, safe=false) # jsonresponse如果返回列表, 需要加上safe=false

客戶端

import requests

url = ''

response = requests.get(url=url)

print(response.json(), type(response.json()))

輸出結果

['xmaster', 'xminion']

客戶端傳送字典套字典資料的時候, 服務端最後接收的資料是外層的字典,

request.post內部構成為

request.body內部構成為 b'外層字典的key=內層字典的key&外層字典的key=內層字典的key'

注意:  只有request.body的資料構成是上面的格式, request.post才能夠接收到值

客戶端

輸出結果

b'k1=ens33&k2=ens22'
解決方案:  使用json進行傳遞資料

方法1: 使用requests.post中的json選項來做

客戶端

方法2: 使用python的模組json來手動做

客戶端

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...

瘦客戶端 胖客戶端 智慧型客戶端

胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...

實現UDP客戶端

實現udp客戶端 1 基於連線和無連線 2 對系統資源的要求 tcp多,udp少 3 udp程式結構較簡單 4 流模式與資料報模式 5 tcp保證資料準確性,udp可能丟包,tcp保證資料順序,udp不保證 import socket if name main 1.建立udp客戶端,建立套接字 ud...