2017-05-15 2 views
-1

Ich arbeite derzeit an einem Universitätsprojekt, das mit einem Client-Server-Modell implementiert werden muss. Ich hatte in der Vergangenheit Erfahrungen, wo ich die Kommunikation auf Sockelniveau leitete und das wirklich saugte. Ich frage mich, ob jemand ein einfach zu bedienendes Python-Framework vorschlagen könnte, das ich für diesen Zweck verwenden kann. Ich weiß nicht, welche Art von Details Sie benötigen, um zu antworten, also werde ich nur kurz das Projekt beschreiben.Client-Server-Framework für Python

  • Kommunikation sollte über HTTP, möglicherweise HTTPS passieren.
  • Der Server muss keine Daten zurücksenden oder Methoden auf den Clients aufrufen, er sammelt nur Daten
  • Viele Clients senden Daten gleichzeitig an den Server, der den Absender unterscheiden muss, die Daten entsprechend verarbeiten und das Ergebnis eingeben eine Datenbank.
+0

Welches Netzwerkprotokoll sollen Sie verwenden? Kannst du HTTP benutzen? – Nurjan

+0

Ich sollte HTTPS verwenden, aber die Demo wird diesen Teil des Projekts nicht abdecken, es kann HTTP sein dann –

Antwort

0

Wenn ich Sie richtig verstanden habe, können Sie jedes Web-Framework in Python verwenden. Zum Beispiel können Sie Flask verwenden (ich benutze es und ich mag es). Django ist auch eine beliebte Wahl unter den Python-Web-Frameworks. Sie sollten jedoch nicht nur auf diese beiden beschränkt sein. Es gibt viele von ihnen da draußen. Googeln Sie einfach nach ihnen.

Die Implementierung des Clients hängt davon ab, welche Art von Kommunikation es zwischen den Clients und dem Server gibt - ich habe hier nicht genug Details. Ich weiß nur, dass es unidirektional ist.

Der Client kann ein Browser sein, der auf Ihre in Flask geschriebene Webanwendung zugreift, in der Benutzer nur POST-Anforderungen an den Server senden. Aber selbst hier wird die Kommunikation bidirektional (die Clients müssen die Seite öffnen, was bedeutet, dass der Server Anfragen zurück an den Client sendet) und es verstößt gegen Ihre ursprüngliche Anforderung.

Dann kann es ein bestimmter Client sein, der in Python geschrieben wird, der bestimmte Anforderungen über http/https an Ihren Server sendet. Zum Beispiel kann Ihr Client ein requests Paket verwenden, um HTTP-Anfragen zu senden.

+0

Ich war nicht klar mit meiner Aussage. Ich meinte nicht, dass der Server keine Nachrichten an die Clients senden konnte, ich meinte damit, dass der Server keine Daten an die Clients senden muss. Ich werde meinen Beitrag bearbeiten. Danke für deine Vorschläge, ich werde Flask und Django überprüfen! –

+0

Ich warf einen Blick auf Flask und es scheint für Web-Anwendungen gedacht. Ich brauche eigentlich ein kleines Python-Programm (Client), das Daten aus einer .txt-Datei an ein anderes Python-Programm (Server) sendet. –

+0

@Dr. Frank Fox, ich würde immer noch flask verwenden und es auf WSGI-kompatiblen Anwendungsserver ausführen, weil es mehrere gleichzeitige Anforderungen für Sie behandelt, wenn Sie mehrere Clients haben. Dann können Sie einen kleinen Client in Python schreiben. Wie ich bereits gesagt habe, können Sie 'Requests' Paket zum Senden von http Anfragen an Ihren Server verwenden. – Nurjan

0

Sie können etwas wie Flask oder Django verwenden. Beide Frameworks sind ziemlich einfach zu implementieren, Flask ist viel einfacher als Django IMO, obwohl Django eine eingebaute Authentifizierungsschicht besitzt, die Sie verwenden können, obwohl es in einem Client/Server-Szenario, wie Sie es benötigen, schwieriger zu implementieren ist.

Ich persönlich würde Flask und JWT (JSON Web Tokens) verwenden, mit denen Sie jedem Client ein Token für die Authentifizierung mit dem Server geben können, mit dem Sie auch zwischen Clients unterscheiden können, und Sie können HTTPS für Ihren verwenden SSL/TLS-Anforderung Es ist viel einfacher, dies zu implementieren, und obwohl ich Django besser mag für das, was es an den Tisch bringt, ist es wahrscheinlich zu viel Aufwand, es für eine einzige Aufgabe zu lernen.

Für Flask mit SSL, here ist eine schnelle Übersicht davon.

Für JWT mit Kolben, here ist das.

Sie können jedes Datenbanksystem verwenden, das Sie möchten.