** Richten Sie einen Server mit dem Python ** Web Framework ** Flask ** ein und zeigen Sie auf den ** Endpunkt mit einem Objekt einrichten ** (z. B. eine Zeichenfolge, eine Liste, ein Objekt Ihrer eigenen Klasse) * Eine Geschichte, wenn Sie * ** senden möchten.
Ich glaube, ich vergesse es oft jedes Mal, deshalb werde ich es hier zusammenfassen.
** Absender ** ist
json.dumps()
Ich denke, es ist (für mich) am einfachsten, es zu senden.
Der ** Empfänger ** empfängt die Daten und erledigt die vom Absender geleistete Arbeit in umgekehrter Reihenfolge.
`json.loads ()`
, um von der Zeichenfolge zum Wörterbuch zurückzukehren.Der Fluss ist so. Ein Überblick. Ich verwende oft die Methode, ein Objekt endgültig in eine Zeichenfolge umzuwandeln, diese Zeichenfolge in ein Diktat, json.dumps, einzufügen und sie dann zu senden.
Absender.py
〜〜〜〜
Was möchten Sie senden= something
case1 isinstance(Was möchten Sie senden,Ein Klassenobjekt): ## もしWas möchten Sie sendenがオブジェクトのとき
Wenn Sie senden möchten, kann binalisiert werden: ##Wenn das Objekt binär sein kann
'pickle.dumps()Bin das Objekt mit(byte)Lasst uns.'
my_binary = pickle.dumps(Was möchten Sie senden)
GO_TO case2
else: ##Wenn das Objekt nicht binär sein kann
'Machen Sie es auf irgendeine Weise binär oder im Fall Ihres eigenen Klassenobjekts
Sie müssen eine Serialisierungsfunktion schreiben. Zum Beispiel eine Funktion, die alle Mitgliedsvariablen einer Klasse in ein Wörterbuch schreibt. Zum Beispiel zu_dict()Implementieren Sie die Funktion.'
my_binary =Was möchten Sie senden.to_dict()
GO_TO case4
case2 isinstance(Was möchten Sie senden, byte): ## もしWas möchten Sie sendenがbyteのとき
'Base64 was Sie senden möchten.b64encode()Machen wir es mit zu einer Zeichenkette.'
my_str = base64.b64encode(Was möchten Sie senden)
GO_TO case3
case3 isinstance(Was möchten Sie senden, str): ## もしWas möchten Sie sendenがstr(文字列)のとき
'Lassen Sie es uns in das Wörterbuch setzen.'
my_dict = {"my_object":Was möchten Sie senden}
GO_TO case4
case4 isinstance(Was möchten Sie senden, dict): ## もしWas möchten Sie sendenがすでにdictのとき
'Json, was du senden willst.dumps()Dann können Sie loslegen.'
Was möchten Sie senden= json.dumps(Was möchten Sie senden)
EXIT_CASE
assert type(Was möchten Sie senden) =String(str), 'Bitte gehen Sie zurück zum Anfang.'
## print(Was möchten Sie senden)
## >>> '{"my_object": my_value}'
requests.post(url="<Zielendpunkt>",Was möchten Sie senden,
headers={'Content-Type': 'application/json'})
Empfänger.py
〜〜〜〜
@app.route('/receive')
def receive():
data = request.data ##"Was Sie senden möchten" per Post gesendet ist Anfrage.Sie können es mit Daten empfangen.
data = json.loads(data)['my_object'] ##Zuallererst json.Kehren Sie mit Lasten zum Wörterbuch zurück.
##Schlüssel ist mein_Wert des Objekts(Was wurde in Form einer Zeichenfolge gesendet)Bekommen.
wenn Daten binär(byte)Wenn Sie zurückkehren möchten:
'Daten zu base64.b64decode()Lassen Sie uns mit Byte dekodieren.'
data2 = base64.b64decode(data)
Wenn Sie elif-Daten an ein Klassenobjekt zurückgeben möchten:
wenn Gurke.Wenn Sie mit Lasten zurückkehren können:
data3 = pickle.loads(data2)
sonst Wenn Sie pickle nicht mit Ihrem eigenen Klassenobjekt usw. verwenden können.:
'Deserialisierungsfunktion von selbst, dikt_to_obj()Lassen Sie uns eine Funktion wie implementieren und zum ursprünglichen Klassenobjekt zurückkehren'
data3 = dict_to_obj(data2)
Dieses Mal habe ich zusammengefasst, wie etwas auf dem mit flask eingerichteten Endpunkt gepostet wird.
Diesmal hier.
Ende.
Recommended Posts