** Configurez un serveur avec le python ** framework web ** flask ** et pointez vers le ** set up endpoint avec un objet ** (par exemple, une chaîne, une liste, un objet de votre propre classe) * Une histoire que vous souhaitez envoyer * **.
Je pense que je l'oublie souvent à chaque fois, je vais donc le résumer ici.
** Sender ** est
1.Faites ce que vous voulez envoyer dans une chaîne de caractères
2. Mettez-le dans le dictionnaire
3. json.dumps()
Je pense que c'est plus simple (pour moi) de l'envoyer.
Le ** récepteur ** reçoit les données et effectue le travail effectué par l'expéditeur à l'envers.
json.loads () '' `` pour revenir de la chaîne au dictionnaire.Le flux est comme ça. Un aperçu. J'utilise souvent la méthode pour finalement transformer un objet en une chaîne, mettre cette chaîne dans un dict, json.dumps, puis l'envoyer.
Expéditeur.py
〜〜〜〜
Ce que vous voulez envoyer= something
case1 isinstance(Ce que vous voulez envoyer,Un objet de classe): ## もしCe que vous voulez envoyerがオブジェクトのとき
si vous voulez envoyer peut être binalisé: ##Si l'objet peut être binaire
'pickle.dumps()Bin l'objet avec(byte)Allons.'
my_binary = pickle.dumps(Ce que vous voulez envoyer)
GO_TO case2
else: ##Si l'objet ne peut pas être binaire
'Rendez-le binaire d'une manière ou d'une autre, ou dans le cas de votre propre objet de classe
Vous devez écrire une fonction de sérialisation. Par exemple, une fonction qui écrit toutes les variables membres d'une classe dans un dictionnaire. Par exemple, pour_dict()Implémentez la fonction.'
my_binary =Ce que vous voulez envoyer.to_dict()
GO_TO case4
case2 isinstance(Ce que vous voulez envoyer, byte): ## もしCe que vous voulez envoyerがbyteのとき
'Base64 ce que vous voulez envoyer.b64encode()Transformons-le en une chaîne de caractères avec.'
my_str = base64.b64encode(Ce que vous voulez envoyer)
GO_TO case3
case3 isinstance(Ce que vous voulez envoyer, str): ## もしCe que vous voulez envoyerがstr(文字列)のとき
'Mettons-le dans le dictionnaire.'
my_dict = {"my_object":Ce que vous voulez envoyer}
GO_TO case4
case4 isinstance(Ce que vous voulez envoyer, dict): ## もしCe que vous voulez envoyerがすでにdictのとき
'Json ce que vous voulez envoyer.dumps()Alors vous êtes prêt à partir.'
Ce que vous voulez envoyer= json.dumps(Ce que vous voulez envoyer)
EXIT_CASE
assert type(Ce que vous voulez envoyer) =Chaîne(str), 'Revenez au début.'
## print(Ce que vous voulez envoyer)
## >>> '{"my_object": my_value}'
requests.post(url="<Point de terminaison de destination>",Ce que vous voulez envoyer,
headers={'Content-Type': 'application/json'})
Bénéficiaire.py
〜〜〜〜
@app.route('/receive')
def receive():
data = request.data ##"Ce que vous voulez envoyer" envoyé par courrier est une demande.Vous pouvez le recevoir avec des données.
data = json.loads(data)['my_object'] ##Tout d'abord, json.Revenir au dictionnaire avec des charges,
##la clé est ma_valeur de l'objet(Ce qui a été envoyé sous la forme d'une chaîne)Recevoir.
si données binaires(byte)Lorsque vous souhaitez revenir à:
'données en base64.b64decode()Décodons en octet avec.'
data2 = base64.b64decode(data)
Lorsque vous souhaitez renvoyer des données elif à un objet de classe:
si cornichon.Quand vous pouvez revenir avec des charges:
data3 = pickle.loads(data2)
else Si pickle ne peut pas être utilisé avec un objet de votre propre classe:
'Fonction de désérialisation par elle-même, dict_to_obj()Implémentons une fonction comme et revenons à l'objet de classe d'origine'
data3 = dict_to_obj(data2)
Cette fois, j'ai résumé comment publier quelque chose sur le point final configuré avec flask.
Cette fois par ici.
fin.
Recommended Posts