Sobes.tech
Middle

Ako preniesť informácie medzi dvoma Python aplikáciami?

sobes.tech AI

Odpoveď od AI

Existuje niekoľko prístupov k prenášaniu informácií medzi dvoma Python aplikáciami, výber závisí od požiadaviek na rýchlosť, objem dát a architektúru:

  1. Sokety (Sockets) — nízkoúrovňová metóda na výmenu dát cez sieť alebo lokálne. Umožňuje implementovať klient-server komunikáciu.

  2. HTTP API — jeden z najrozšírenejších spôsobov. Jedna aplikácia spustí webový server (napríklad s Flask alebo FastAPI), druhá odosiela HTTP požiadavky s dátami.

  3. Fronty správ (Message Queues) — systémy ako RabbitMQ, Kafka alebo Redis Pub/Sub umožňujú asynchrónnu výmenu správ medzi aplikáciami.

  4. Zdieľané súbory alebo databázy — aplikácie môžu čítať a zapisovať dáta do spoločného súboru alebo databázy.

  5. multiprocessing modul a Pipe/Queue — ak aplikácie bežia na rovnakej stroj a sú to Python procesy, môžu použiť vstavané nástroje na medziprocesovú komunikáciu.

Príklad jednoduchého výmeny cez sokety:

# Server
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 5000))
server.listen(1)
conn, addr = server.accept()
data = conn.recv(1024)
print('Prijaté:', data.decode())
conn.sendall(b'Prijaté')
conn.close()

# Klient
import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('localhost', 5000))
client.sendall(b'Ahoj od klienta')
response = client.recv(1024)
print('Odpoveď servera:', response.decode())
client.close()

Výber metódy závisí od konkrétnych úloh: pre jednoduchú výmenu na jednej mašine postačí socket alebo fronta; pre distribuované systémy sú vhodnejšie HTTP API alebo správové brokeri.